我正在开发一个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。感谢