Windows 从DLL创建IDL文件
我正在开发一个VB6图形界面,它使用C代码生成的DLL,C代码使用Windows 从DLL创建IDL文件,windows,multithreading,vb6,idl,midl,Windows,Multithreading,Vb6,Idl,Midl,我正在开发一个VB6图形界面,它使用C代码生成的DLL,C代码使用\uu declspec(thread)变量。问题是,由于存在错误,无法在VB6项目中动态链接此dll 因此,正如讨论中所建议的,一个可能的解决方案是从DLL创建一个IDL文件,用MIDL编译器编译它,然后在VB6项目中引用生成的.tlb文件 在我必须指定包含结构变量的函数之前,我可以生成.tlb文件 [ uuid(YOURTYPE-LIBG-UIDH-ERE0-000000000000), version(1.0),
\uu declspec(thread)
变量。问题是,由于存在错误,无法在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)代码>编译器说:
语法错误:应为“myStruct”附近的类型规范
有没有办法让它起作用?像IDL文件中的某种结构声明
谢谢,
G.B
由wqw解决。谢谢DLL的C函数签名是什么样子的?首先阻止动态链接的“错误”是什么?@selbie嗨,我不理解第一个问题,对不起。关于限制,您可以在@David Thanke you上找到解释,我已经修复了问题。在您解决问题后,关闭本地化,消除了任何已发布的答案。