У клиента возникла проблема с call conventions при подключении паскалевской функции из dll. Киньте, пожалуйста, в меня чем нибудь про объявление соглашений о вызове при работе с dll в VBA. Кусок из документации, илли если есть под рукой — example. Заранее спасибо.
Здравствуйте, ЕвгенийI, Вы писали:
ЕI>У клиента возникла проблема с call conventions при подключении паскалевской функции из dll. Киньте, пожалуйста, в меня чем нибудь про объявление соглашений о вызове при работе с dll в VBA. Кусок из документации, илли если есть под рукой — example.
В VB(VBA) стандартный тип вызова — stdcall. Других просто нет.
Здравствуйте, ЕвгенийI, Вы писали:
ЕI>Гм... а как же тогда вызываются апишные функции? Они же вроде не stdcall...
Вот выдержка из MSDN:
Topic:
Accessing the Microsoft Windows API
...
Chapter:
Using Procedures from Other Sources
If you are attempting to call a procedure in a DLL that is not part of the operating system, you must determine the proper declaration for it. The topic "Declaring a DLL Procedure" explains the syntax of the Declare statement in detail.
Note If you use Visual C++ (or a similar tool) to create DLLs that will be called by Visual Basic, use the __stdcall calling convention. Do not use the default calling convention (_cdecl).
Замечание. Если Вы используете Visual C++ (или похожий), чтобы создавать DLL-ки, которые будут вызываться Visual Basic, используйте __stdcall соглашение. Не используйте соглашение по умолчанию (_cdecl).