создание файла dll в code :: blocks и его использование в powerpoint 2007

Я устал создавать файл DLL в блоках кода, а затем использовать его в моей презентации PowerPoint. В файле DLL, как я уже упоминал ниже, аргумент функции содержит (LPCSTR)

 void DLL_EXPORT SomeFunction(const LPCSTR sometext)
{
MessageBoxA(0, sometext, "  DLL Message  ", MB_OK | MB_ICONINFORMATION);
}

В моем файле PowerPoint у меня есть

Declare Function DLL_EXPORT _
Lib "myfile.dll" _
Alias "SomeFunction" (???)

и когда я запускаю файл, я получаю
введите описание изображения здесь
Потому что я не знаю, как определить аргумент моей функции в powerpoint. Я имею в виду эту часть кода:

 Alias "SomeFunction" (???)

0

Решение

Ваш код C ++ использует неправильное соглашение о вызовах. Так должно быть:

__declspec(dllexport) void __stdcall SomeFunction(const char* sometext)

Вы можете использовать макросы как DLL_EXPORT, APIENTRY, LPCSTR и т.д., если хотите. Однако, по крайней мере, до тех пор, пока вы не поймете, что все эти макросы означают, вероятно, будет проще быть явным, как я покажу выше.

Правильное объявление VBA для вашей функции:

Declare Sub SomeFunction Lib "myfile.dll" (ByVal sometext As String)

Однако одного этого недостаточно, потому что ваша функция будет зависеть от оформления имени и искажения. Вы можете использовать dumpbin или Dependency Walker для просмотра фактического имени, по которому экспортируется ваша функция. Тогда ваше объявление VBA нужно будет изменить так:

Declare Sub SomeFunction Lib "myfile.dll" Alias "<DecoratedNameHere>" (ByVal sometext As String)
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector