gpt4 book ai didi

c++ - VB6调用的DLL Export C/C++ 6.00函数

转载 作者:行者123 更新时间:2023-11-28 08:28:49 26 4
gpt4 key购买 nike

我一直在尝试用 C/C++ 创建一个可以被 VB6 访问的 DLL,没错,我在从 VB6 调用函数时收到错误“453 无法在 myDllName.dll 中找到 DLL 入口点 myFunctionName”应用程序。在网上搜索后,包括这个网站,我发现我并不孤单,我已经尝试了发布的各种解决方案,但错误“453”是无法解释的。这不是 COMM dll,我相信通过 C/C++ 创建时这是可能的。 无论如何,如果可以的话,请帮忙。请引用下面的简单测试用例:

创建为 C/C++ 6.00 Win32 动态链接库的 DLL:

#include <Windows.h>   

// Note that I did try the line below rather than the def file, but to no avail...
// #pragma comment(linker, "/EXPORT:ibask32=_ibask32@0")

// Function definition
extern "C" int __declspec(dllexport) __stdcall ibask32()
{
MessageBox(NULL,"String","Sample Code", NULL);
return 0L;
}

定义文件:

LIBRARY "Gpib-32"
EXPORTS
ibask32

现在是 VB 应用程序:

以下是启动Form1、Form_Load的全部内容

Option Explicit
Private Sub Form_Load()
Call ibask
End Sub

下面是添加到工程中的BAS模块文件:

Option Explicit

Declare Function ibask32 Lib "Gpib-32.dll" Alias "ibask" () As Long

Sub ibask()

Call ibask32 ' Note: This is the point of failure

End Sub

如果可以提供可行的解决方案,请提前致谢,汤姆

最佳答案

据我所知,您做的每件事都是正确的。通过在 DLL 上运行 Dumpbin.exe/exports 来验证您的假设。这显示了导出函数的实际名称,它必须与 VB6 声明中的别名相匹配。

我能想到的唯一其他故障模式是 VB6 加载了错误的 DLL。如果您想从 VB6 IDE 中使用它,它必须存在于 PATH 中列出的目录中。通过从命令行运行“where gpib-32.dll”进行验证。

关于c++ - VB6调用的DLL Export C/C++ 6.00函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3064944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com