Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 从DLL创建IDL文件_Windows_Multithreading_Vb6_Idl_Midl - Fatal编程技术网

Windows 从DLL创建IDL文件

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),

我正在开发一个VB6图形界面,它使用C代码生成的DLL,C代码使用
\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上找到解释,我已经修复了问题。在您解决问题后,关闭本地化,消除了任何已发布的答案。