gpt4 book ai didi

从 VB 6.0 dll 调用 win 32 C 库函数崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 07:41:43 25 4
gpt4 key购买 nike

我有一个 C 库 Cdll.dll,它具有以下功能

int _stdcall AddVersion(int repval) 
{
return (repval + 10);
}

我从 VB dll 调用这个 AddVersion 函数。

Private Declare Function AddVersion Lib "cdll.dll" (ByVal Repval As Integer) As Integer
...

Public Function VbMessageHandler(ByRef intVal As Integer) As Integer
intVal = AddVersion(10)
End Function

我通过为 VB dll 创建 COM 包装器从 C dll 调用此 VB dll。

ret = ObjVbclass->VbMessageHandler(&IntegerValue);

当我在我的 C exe 应用程序中使用此 VBWrapper dll 时,它因抛出运行时异常而崩溃。

最佳答案

你的声明是错误的。由于历史原因,VB6 Integer 是 16 位,而 C int 是 32 位。请改用 Long。

Private Declare Function AddVersion Lib "cdll.dll" (ByVal Repval As Long) As Long

关于从 VB 6.0 dll 调用 win 32 C 库函数崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3193589/

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