3

我正在开发一个 VB6 图形界面,该界面使用从使用__declspec(thread)变量的 C 代码生成的 DLL。问题是由于已知限制,无法在 VB6 项目中动态链接此 dll。

因此,正如讨论中所建议的,一种可能的解决方案是从 DLL 创建一个 IDL 文件,使用 MIDL 编译器对其进行编译,然后在 VB6 项目中引用生成的 .tlb 文件。

在我必须指定包含结构变量的函数之前,我能够生成 .tlb 文件

[
  uuid(YOURTYPE-LIBG-UIDH-ERE0-000000000000),
  version(1.0),
  helpstring ("My Type Library 1.0")
]
library MyTypeLib
{
    importlib("stdole2.tlb");

    [dllname("OLEAUT32")]
    module OleAut32
    {
        [entry("myFunct")]
        int myFunct([in] myStruct data);
    };
};

在行: int myFunct([in] myStruct data);编译器说:

syntax error: expecting a type specification near "myStruct"

有没有办法让它工作?就像 IDL 文件中的某种结构声明一样?

谢谢,

国标

在这里由 wqw解决。谢谢

4

0 回答 0