現時点では、Ruby で win32api しか使用できないため、ffi などは使用できません。Ruby では、DLL をロードして文字列を渡すと、同じ文字列が返されることを期待しています。コードは次のとおりです。
ルビーコード
string = "hello"
p = Win32API.new('C:/func/testFunc', 'Print', ['P'], 'S')
p.call(string)
出力
=> 7476721
DLL
extern (C)export char* Print(char* am)
{
return am;
}
「こんにちは」の代わりに数字を取得しています。dllに渡したばかりの値のアドレスだと思います。DLL から文字列を取得する適切な方法を教えてください。