我试图在Ruby中调用Win32Api dll函数:
LoadTexture = Win32API.new('System/SFML.dll', 'sfml_load_texture', 'p', 'p')
我的代码致电:
LoadTexture.call("folder/file.png")
我第二次尝试转换数据(只使用wchar_t)
buf = ''
for i in 0..filename.size - 1
buf += filename[i] + 0.chr
end
buf += 0.chr * 260
LoadTexture.call(buf)
我得到了
无法加载图片“=»`¶È;ð¿wcH”。原因:无法打开
答案 0 :(得分:0)
1)如果函数签名有char *参数,那么你不应该试图通过这个参数来挤压wchar_t
。它不起作用。
2)创建wchar_t
的方法对大多数字符串编码都不起作用。
3)如果我理解正确的文档,Win32API.new需要一个字符串数组作为第三个参数。
4)您描述了两种不同的尝试,但只提供一条错误消息。目前还不清楚此错误消息属于哪种尝试。
5)sfml具有ruby绑定。 sfml项目显式链接到ruby绑定。您应该在尝试滚动自己的ruby绑定之前尝试现有的ruby绑定。加载纹理似乎被绑定覆盖。