我有一个C Library 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时,它会因抛出Runtime异常而崩溃。
答案 0 :(得分:3)
您的声明是错误的。由于历史原因,VB6整数是16位,C int是32位。请改用Long。
Private Declare Function AddVersion Lib "cdll.dll" (ByVal Repval As Long) As Long