在Visual Studio 2010中编译IDL文件时无法生成必要的文件
can not generate necessary file when compile IDL file in visual studio 2010
我正在通过互联网教程(http://www.codeguru.com/cpp/com-tech/activex/tutorials/article.php/c5567/Step-by-Step-COM-Tutorial.htm)学习COM。第一件事是创建一个 IDL 文件并将其编译为创建另外 5 个文件。详细信息如下:
- 打开 VS2010
- 创建 Win32 DLL 项目名称 AddObj
-
添加包含内容的 IAdd.idl 文件
导入"unknwn.idl";
[ 对象 UUID(1221db62-f3d8-11d4-825d-00104b3646c0), helpstring("接口 IAdd 用于实现超快速加法算法") ]
接口 IAdd : 未知 { 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 .") ] 库代码大师数学库 { importlib("stdole32.tlb"); importlib("stdole2.tlb");
接口 IAdd; }
之后,按照教程进行操作,如果我编译 IAdd.idl 文件,它将生成:
--IAdd.h 包含C++样式接口声明。
--dlldata.c 包含代理 DLL 的代码。在其他进程/计算机上调用对象时很有用。
--IAdd.tlb 二进制文件 ,具有定义良好的格式,完全描述了我们的接口 IAdd 及其所有方法。此文件将分发到COM组件的所有客户端。
--IAdd_p.c 包含代理 DLL 的封送代码。在不同的进程/计算机上调用对象时很有用。
--IAdd_i.c 包含接口 IID
但是当我通过右键单击它并在快捷菜单中选择编译来编译 IAdd 时,没有生成任何文件。但是当打开视图类时,我可以看到带有某些方法的 IAdd 接口。
我也尝试通过从互联网下载midl.exe并在命令行中运行来手动编译它,但它失败了。
我通过谷歌罚款了很多材料,所有人都说我可以通过Visual Studio编译idl文件,但我尝试了很多次,在我的两台计算机上,但在编译idl文件后没有生成文件。我还安装了新的Win7,新的Visual Studio 2010旗舰版,但没有任何变化。
我刚刚创建了一个新项目,并使用您指定的代码创建了一个新的 idl 文件。如果我右键单击并选择编译,它可以正常工作(VS2010旗舰版)。
您是否在 VS 的文件属性中选择了正确的文件类型?它应该是"IDL 文件"。
您是否在尝试手动编译时使用过VS命令提示符?
(VS命令提示符将设置所有必要的环境变量)
- 从另一个CPP文件访问Form1的文本框,Visual C 2010
- Visual Studio 2010 调用 _locking() 失败 (errno = 22) 当文件指针高于 (2^
- 使用boost库在Visual Studio 2010中编译完整的静态可执行文件
- 如何在Visual Studio c ++ 2010中使用stat检查文件是否存在
- Visual C 2010:LNK1104,LNK1181- .OBJ文件不会自动生成
- 在Visual Studio 2010中创建.lib文件
- 在Visual Studio 2010和Windows中使用文件描述符
- Visual Studio 2010-源代码从项目文件夹中消失
- 如何在单个 Visual Studio 2010 项目中执行多个主文件
- 在Visual Studios 2010的外部依赖项文件夹中搜索文本/代码
- 确定lib文件是否为2010 Build
- MS VisC++2010 express:突然间Project不再看到头文件
- 获取一个文件的名称方法 - 自定义界面 - Microsoft Visual Studio 2010
- Eclipse Juno C++与microsoft 2010 C++express不创建EXE文件
- Visual Studio 2013 在使用 VS 2010 平台工具集时找不到头文件
- 将现有的.h和.c文件添加到Microsoft Visual Studio 2010 c++项目中
- 链接: 致命错误 LNK1104: 无法打开文件 'msmpi.lib' Visual Studio 2010
- 使用Microsoft Visual C++2010学习版的C++多个文件
- VC 2010可执行文件未在其他计算机上运行-无错误
- Visual Studio 2010 源代码管理集成不适用于解决方案文件夹之外的文件