1

我想在 WinDev 应用程序中使用一个 DLL(用 C++ 开发),我的 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)
4

2 回答 2

0

这篇法语文章建议你在字符串前面加上 & 因为它需要通过引用传递,它应该看起来像:

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

虽然我不知道它如何处理字节数组。

于 2017-04-12T19:50:48.790 回答
-1

可以直接调用:API函数

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

文档:https ://doc.windev.com/en-US/?3014005

于 2020-04-26T19:45:47.523 回答