Вызов функции win 32 C Library из DLL-библиотеки VB 6.0 - PullRequest
0 голосов
/ 07 июля 2010

У меня есть C Library Cdll.dll, которая имеет функцию

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

Я вызываю эту функцию AddVersion из библиотеки VB.

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 из C dll, создавая оболочку COM для VB dll.

ret = ObjVbclass->VbMessageHandler(&IntegerValue);

когда я использую эту DLL-библиотеку VBWrapper в своем приложении C exe, она вылетает из-за исключения Runtime.

1 Ответ

3 голосов
/ 07 июля 2010

Ваша декларация неверна.Целое число VB6 является 16-разрядным по историческим причинам, а C int - 32-разрядным.Вместо этого используйте Long.

Private Declare Function AddVersion Lib "cdll.dll" (ByVal Repval As Long) As Long
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...