目前我只能在 Ruby 中使用 win32api,所以没有 ffi 等。在 Ruby 中,我正在加载一个 DLL 并传递一个字符串,我希望返回相同的字符串。这是代码:
红宝石代码
string = "hello"
p = Win32API.new('C:/func/testFunc', 'Print', ['P'], 'S')
p.call(string)
输出
=> 7476721
动态链接库
extern (C)export char* Print(char* am)
{
return am;
}
我得到的是数字而不是“你好”。我猜这是我刚刚传递给 dll 的值的地址。有人可以告诉我从 DLL 中检索字符串的正确方法是什么。