我可以在D中使用comdef.h,Wbemidl.h等的例程吗?

The*_*ask 1 windows com winapi d

我知道windows.h标题,有D的模块:

core.sys.windows.windows
Run Code Online (Sandbox Code Playgroud)

但关于这样的事情:

#include <comdef.h>
#include <Wbemidl.h>
Run Code Online (Sandbox Code Playgroud)

D是否支持它们,如果支持,我如何导入

Dej*_*kic 5

我不是Windows编程大师,但我很确定你必须自己编写一个包装wbemuuid.lib库,因为编译器通常默认不提供它.如您所知,您可以使用任何核心Windows库中的任何C函数.

只需查看Wbemidl.hMinGW项目中的文件,您似乎就会有很多工作要做. - 你必须包装wbemcli.h,wbemprov.h,wbemtran.h和wbemdisp.h.

看看std/c/windows/com.d如何做到这一点.有几个与WindowsAPI相关的项目,其中一个就是这个项目:http://dsource.org/projects/bindings/wiki/WindowsApi.它会帮助你开始.

从个人角度来看,我认为最好的方法是为每个WindowsAPI库提供绑定/包装.在这种情况下,我将在此包中创建wbemuuid包,以及wbemcli,wbemprov,wbemtran和wbemdisp模块.

最后,您很可能想要分析D中现有的COM支持.Lionello的" D中的现代COM编程 "幻灯片.