windows - 我可以在 D 中使用来自 comdef.h、Wbemidl.h 等的例程吗?

标签 windows winapi com d

我知道windows.h头文件,有D的模块:

core.sys.windows.windows

但是关于这样的:

#include <comdef.h>
#include <Wbemidl.h>

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

最佳答案

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

仅通过查看 MinGW 项目中的 Wbemidl.h 文件,您似乎有很多工作要做。 - 您必须包装 wbemcli.h、wbemprov.h、wbemtran.h 和 wbemdisp.h。

看看std/c/windows/com.d是怎么做的。有几个与 WindowsAPI 相关的项目,其中之一就是这个:http://dsource.org/projects/bindings/wiki/WindowsApi .它将帮助您开始。

从个人角度来看,我认为最好的方法是为每个 WindowsAPI 库提供绑定(bind)/包装器。在这种情况下,我将创建 wbemuuid 包,并在该包内创建 wbemcli、wbemprov、wbemtran 和 wbemdisp 模块。

最后,您很可能想要分析 existing COM support in D .还有 Lionello 的“Modern COM Programming in D”幻灯片。

关于windows - 我可以在 D 中使用来自 comdef.h、Wbemidl.h 等的例程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24051606/

相关文章:

具有 ComVisible(true) 成员的 ComVisible(false) 类

c# - 在 C# 中释放 OLE IStorage 文件句柄

windows - Perl:停止在 Windows 中使用 perl "system"启动的命令

windows - 如何仅回显 "on"或 "off"文本?

windows - 在Windows环境下编译linux源码

winapi - 为 x64 重新编译简单的 Win32 C++ 应用程序

c++ - GetProcessAffinityMask 给出了错误的值

检查 CopyFileEx 标志中的值

windows - 如何在 Perl 中构造独立于操作系统的文件路径,包括可选的 Windows 驱动器号?

c++ - idl 和 odl 的区别