i 通过互联网辅导(http://www.codeguru.com/cpp/com-tech/activex/tutorics/article.php/c5567/Step-by-Step-COM-Tutor.htm)了解COM。
- Open VS2010
- Create Win32 DLL project name AddObj
添加内容的 IAdd.idl 文件
导入“ kunknwn.idl” ;
[ object, uuid(1221db62-f3d8-11d4-825d-00104b3646c0), helpstring("interface IAdd is used for implementing a super-fast addition Algorithm") ]
interface IAdd : IUnknown { HRESULT SetFirstNumber(long nX1);
HRESULT SetSecondNumber(long nX2); HRESULT DoTheAddition([out,retval] long *pBuffer); };
[ uuid(3ff1aab8-f3d8-11d4-825d-00104b3646c0), helpstring("Interfaces for Code Guru algorithm implementations .") ] library CodeGuruMathLib { importlib("stdole32.tlb"); importlib("stdole2.tlb");
interface IAdd; }
在此之后, 跟随教程, 如果我编辑 IAdd. idl 文件, 它将生成 :
-IAdd.h 包含 C++ 样式接口声明。
-dlldata.c 包含代理 DLL 的代码。 当在不同的进程/ 计算机上引用对象时非常有用 。
-IAdd.tlb Binary 文件, 带有定义明确的格式, 完整描述我们的接口 IAdd 及其所有方法。 此文件将分发给我们 COM 组件的所有客户 。
-IAdd_p.c 包含代理 DLL 的拼接代码。 在不同的进程/计算机上引用对象时非常有用 。
--IAdd_i.c 包含界面 IID
但当我用右键单击 IAdd 编译时, 并选择以快捷键菜单进行编译时, 没有文件正在生成。 但是当打开视图类时, 我可以看到使用某种方法的 IAdd 接口 。
我也尝试手工编译它, 从互联网下载 midl.exe, 并在命令行运行, 但失败了 。
我用Google罚款了很多材料,所有材料都说我可以用视觉工作室编集IDl文件,但我尝试了很多时间,在我的两部电脑上,但是在我编译IDl文件后没有生成任何文件。我还安装了新的Win7,新的视觉工作室2010最终,但没有任何变化。