如何将Ruby字符串转换为C ++ char指针

时间:2018-05-19 18:12:55

标签: c++ ruby

我试图在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)

DLL函数 enter image description here

我得到了

  

无法加载图片“=»`¶È;ð¿wcH”。原因:无法打开

1 个答案:

答案 0 :(得分:0)

1)如果函数签名有char *参数,那么你不应该试图通过这个参数来挤压wchar_t。它不起作用。

2)创建wchar_t的方法对大多数字符串编码都不起作用。

3)如果我理解正确的文档,Win32API.new需要一个字符串数组作为第三个参数。

4)您描述了两种不同的尝试,但只提供一条错误消息。目前还不清楚此错误消息属于哪种尝试。

5)sfml具有ruby绑定。 sfml项目显式链接到ruby绑定。您应该在尝试滚动自己的ruby绑定之前尝试现有的ruby绑定。加载纹理似乎被绑定覆盖。