gpt4 book ai didi

c++ - 我对 Delphi 中的动态虚拟 channel 有点困惑

转载 作者:行者123 更新时间:2023-11-30 04:49:24 24 4
gpt4 key购买 nike

我正在根据 https://github.com/earthquake/UniversalDVC/tree/master/UDVC-Plugin 将 RDS(也称为终端服务)中的动态虚拟 channel 代码从 C++ 转换为 Delphi。在 C++ 中。这需要几个类来注册客户端插件,我在 C:\Program Files (x86) 的 Windows 系统上的 tsvirtualchannels.h.idl 中找到了定义\Windows 套件\10\Include\10.0.17763.0\um

不幸的是 .idl 文件不包含类型库,所以我无法构建类型库 .tlb 文件并导入它,所以我一直在重新创建它在德尔福手动。

Embarcadero 使用.ridl 文件,与idl 文件相似但不完全相同。 .idl 文件中的属性之一是 cpp_quote("string")。例如

cpp_quote("EXTERN_C __declspec(selectany) const IID IID_IWTSListenerCallback = {0xA1230203, 0xd6a7, 0x11d8, {0xb9, 0xfd, 0x00, 0x0b, 0xdb, 0xd1, 0xf1, 0x98}};")
[
object,
uuid(A1230203-d6a7-11d8-b9fd-000bdbd1f198),
oleautomation,
helpstring("interface IWTSListenerCallback")

]
interface IWTSListenerCallback : IUnknown

Ridl 不支持 cpp_quote,所以我不确定如何处理这些。

最佳答案

midl.exe(来自 Windows SDK)应该能够从 idl 文件生成一个 tlb

如果 idl 文件中没有库定义,您可以自己添加一个,正如 Hans Passant 在他对 this question 的回答中所解释的那样.

关于c++ - 我对 Delphi 中的动态虚拟 channel 有点困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55416973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com