我正在使用COM的几个项目上工作,但遇到了问题。我使用的是已编译和导入的外部.idl,因此我的项目中只有.idl库。

现在,当我编译仅包含该库的项目内部idl时,在x32配置下不会生成dlldata.c文件。但是,如果我编译该项目,并且它是在x64配置下的.idls,则将生成dlldata.c文件,并且该项目可以正常运行。

我试过了Visual Studio for MIDL的所有选项,但无济于事。显然,我只能通过添加一个虚拟接口(interface)来解决此问题,这是我不想做的。

是否有另一种解决方案在不添加虚拟接口(interface)的情况下在x32配置下生成dlldata.c文件?

最佳答案

我找到了解决方案。似乎您对于外部.idls的预构建事件必须非常小心。甚至平台也很重要。使用/ env win32和/ env x64参数编译到MIDL的每种配置分别解决了我的问题。

09-11 12:05