Вызов DLL из VBA - PullRequest
       10

Вызов DLL из VBA

1 голос
/ 12 октября 2009

Мне нужно вызвать функцию DLL из Access, используя VBA. Прототип для функции DLL -

int __stdcall myFunction(const char* data,
        int rows, int cols, int sl, int fullsize, 
        double aspect_ratio,
        double y,
        void** ppResult);

Тот, который я объявил в Access:

Private Declare Function DllImport_myFunction _
        Lib "myFunctionDLL.dll" _
        Alias "myFunction" _
            (ByVal data As String, _
             ByVal rows As Long, _
             ByVal cols As Long, _
             ByVal sl As Long, _
             ByVal fullsize As Long, _
             ByVal aspectRatio As Double, _
             ByVal y As Double, _
             ByRef handle As Long)

Когда я пытаюсь позвонить из Access, Access потерпел крах с нарушением доступа Я поместил точку останова в первый оператор функции DLL, но он не был достигнут.

Является ли декларация неправильной?

1 Ответ

1 голос
/ 13 октября 2009

Вам не хватает возврата

Private Declare Function DllImport_myFunction Lib "myFunctionDLL.dll" Alias "myFunction" _
(ByVal data As String, _
 ByVal rows As Long, _
 ByVal cols As Long, _
 ByVal sl As Long, _
 ByVal fullsize As Long, _
 ByVal aspectRatio As Double, _
 ByVal y As Double, _
 ByRef handle As Long
) As Long

и, вероятно, нужно добавить внешний "C", чтобы избежать искажения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...