从DLL创建IDL文件

时间:2011-03-07 08:43:55

标签: windows multithreading vb6 idl midl

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

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

我必须生成.tlb文件,直到我必须指定包含struct变量的函数

[
  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文件中的某种结构声明一样?

谢谢,

G.B。

由wqw解决here。感谢

0 个答案:

没有答案