Я хочу использовать 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)
это сообщение на французском языке предлагают префикс строки с & потому что он должен быть передан по ссылке, он должен выглядеть примерно так:
CallDLL32("MyDLL", "GetCode", &data, &res1, &res2)
Хотя я не знаю, как это работает с массивом байтов.
Других решений пока нет …