Вызов метода DLL из WinDev

Я хочу использовать DLL (разработанную на C++) в приложении WinDev, моя DLL прекрасно работает с кодом C#, и я могу вызвать любой метод там, однако с Windev я могу успешно загрузить DLL, используя:

hInst = LoadDLL("MyDLL.DLL")

но когда я хочу вызвать метод следующим образом:

CallDLL32("MyDLL", "GetCode", data, res1, res2)

Я получил сообщение об ошибке "Попытка чтения или записи защищенной памяти. Это часто свидетельствует о повреждении другой памяти".

подпись метода, которую я хочу вызвать, выглядит следующим образом:

string GetCode([IN] byte[] Data, [OUT] string res1, [OUT] string res2)

1 ответ

Этот пост на французском языке предполагает, что вы префикс строки с & потому что это должно быть передано по ссылке, это должно выглядеть примерно так:

CallDLL32("MyDLL", "GetCode", &data, &res1, &res2)

Хотя я не знаю, как это работает с массивом байтов.

Вы можете вызвать Directely: функцию API

API("USER32", "SendMessageA", hWnd, wMsg, lParam1, lParam2)

документация: https://doc.windev.com/en-US/?3014005

Другие вопросы по тегам