2024年1月1日发(作者:)

经过一晚上的努力终于解决了 在VS2008下VC++ 调用IDL的所有的问题。

环境:

VS2008下的VC++

ENVI4.7下的IDL7.1

第一步:

打开一个MFC的MFC的应用程序 ,并添加一个按钮,工程名为:hello1

第二步:

设置VS2008 如:

项目->hello1属性->配置属性 ->链接器->输入

在对话框的附加依赖项:填写

第三步:

在C:Program Files (x86)ITTIDL71externalinclude找到idl_export.h,把他放在hello1的工程文件里面,和其他.h文件放在一块

第四步:

在MFC的Button1的单击事件中,写入代码如下:

HANDLE hInstance=AfxGetInstanceHandle();

IDL_Win32Init(0,hInstance,NULL,0);

IDL_ExecuteStr(".compile 'C:UsersacerDesktopd_'");

IDL_ExecuteStr("d_map");

IDL_Cleanup(TRUE);

注意:d_ 文件放在C:UsersacerDesktop

如果是想编译文件,格式如:

IDL_ExecuteStr(".restore, 'C:'");其他代码不变

还用一个注意事项是:添加idl_export.h头文件

如:

运行截图:

不过在开始碰到很多系统问题如:我的系统是win7系统,开始新建MFC总是报错:丢失,最后解决了是路径问题,解决方法是:

“工具”—>“选项”—>“项目和解决方案”—>“VC++目录”,在可执行文件栏中加入下面的路径:

$(SystemRoot)System32

$(SystemRoot)

$(SystemRoot)System32wbem