如何在D中导入COM dll

我正在尝试创建一个使用(第三方)COM .dll的D应用程序,这样我就可以抓取另一个应用程序的文本框,这样当某个字符串出现时我就会发出错误.

但是,第三方不提供与dll一起使用的.lib,.def或.h文件(至少具有免费试用版).我可以使用implib工具创建.lib文件,但我在创建的.lib中看不到任何库的函数.

他们的(视觉c)样本使用#import指令链接它,但对我来说没用…

另外,如何自动获取dll的正确接口(带有连接的样板的.di)?我问这样联系的正确性并不依赖于我(可能是不正确的)函数的翻译.他们确实有一个webpage,它提供了所有功能,但对象模型至少可以说有点混乱.

最佳答案 据我所知,COM库只公开一些函数,需要(un)注册库和创建对象.

但是,您可以使用
OLE/COM Object Viewer查看COM .dll中的接口和函数.似乎它可能能够输出头文件(.h).之后,也许您可​​以使用
htod作为将所有内容转换为D接口的起点.

DMD发行版似乎包含一个.COM示例(chello.d,dclient.d,dserver.d),乍一看它看起来不像显式需要任何LIB.

不幸的是,我从来没有在D中实际使用COM,所以我不能再进一步建议了.我希望这在某种程度上有所帮助.

点赞