创建一个ATL的COM组件,可以参考后面的资料。
下面这个是使用的代码, 直接创建console的工程, 并且包含ATL头文件,然后点击完成,即可。
/*********************代码****************/
#include "stdafx.h"
#include "MyATL_i.h"
//----组件生成的头文件,可以拷贝过来
#include "MyATL_i.c"
#include <iostream>
int main()
{
HRESULT hr;
IMyATLClass *pMyClass = NULL;
long sum;
long n = 100;
hr = CoInitialize(NULL);
hr = CoCreateInstance(
CLSID_MyATLClass, NULL, CLSCTX_INPROC_SERVER, IID_IMyATLClass,
(LPVOID*)&pMyClass); -----
if (SUCCEEDED(hr))
{
pMyClass->TotalSumMatn(n, &sum);
printf("total sum of %d is %d\n", n , sum);
}
else
{
printf("CoCreateInstance error=%d\n", GetLastError());
}
CoUninitialize();
return 0;
}
参考: http://blog.csdn.net/pigautumn/article/details/43021085 ---VS2012创建
http://www.xuebuyuan.com/2142379.html ----VS2010 创建ATL的COM
http://blog.csdn.net/wangwenjing90/article/details/8771934 -----新建一个ALT组件
(问题:
warning MSB3075: 命令“regsvr32 /s "D:\NativeAddIn\Release\NativeAddIn.dll"”已退出,代码为 5。请验证您是否有足够的权限来运行此命令。
error MSB8011: 未能注册输出。请尝试启用“逐用户重定向”,或者使用提升的权限从命令提示符处注册该组件。
解决办法:
Solution Explorer ->项目节点->鼠标右键->属性->链接器->常规->逐用户重定向)