在MIDL

时间:2018-05-05 18:03:53

标签: com midl

我发现使用这种语法,我会收到编译错误:

importlib("MSADDNDR.dll");

给出的错误是:

error MIDL2337 : unsatisfied forward declaration : _IDTExtensibility2 [ Coclass '_Extension'  ]

但那是谎言,有点儿。在输出的前面看,我们看到了:

warning MIDL2015 : failed to load tlb in importlib: : MSADDNDR.dll

因此,如果我们更改属性以包含完整路径:

importlib("C:\Program Files (x86)\Common Files\Designer\MSADDNDR.dll");

它现在可以正确编译....但是...这是引用32位DLL。假设我想交叉编译?所以我为MIDL指定了/amd64选项。这仍然成功编译。我找不到任何可能暗示使用importlib的可能错误的位数DLL的完整路径的文档会导致问题。

是否有其他人可以确认或否认是否存在潜在问题,或者是否有更好的方法可以避免嵌入完整路径?

有趣的是,当我在.tlb中加载生成的oleview文件时,完整的路径已经不存在了;这表明这不是问题,但我想确保是这样。

0 个答案:

没有答案