将字符串从R传递给C ++

时间:2012-07-05 15:11:19

标签: c++ r

我正在尝试在R中使用一些C ++函数。我已将所有C ++函数放在DLL中。 我的R代码是

#load the c++ DLL
dyn.load("PathToDLL\\MyCPlusPlus.dll")    
#call the C++ function from R
a <- .C("MyFunc",as.character("Hello world"))

我的C ++ DLL函数是

char ** _stdcall MyFunc(char ** strInput)
{
 //display the string received from R
 MessageBox(NULL, LPCWSTR(*strInput), L"C++ program", NULL);
 return strInput;
}

我遇到的问题是,当我在消息框中显示时,从R传递给C ++的字符串会被破坏。有没有人有从R传递字符串到C ++的经验,如果有的话,你能指出我正确的方向吗?

由于

编辑:我也尝试使用char *代替char **,如下所示,但没有运气

char * _stdcall MyFunc(char * strInput)
    {
     //display the string received from R
     MessageBox(NULL, LPCWSTR(strInput), L"C++ program", NULL);
     return strInput;
    }

1 个答案:

答案 0 :(得分:0)

看起来你的DLL中的字符串是宽字符(16个字符串),传递的字符串是简单的ASCII字符串。尝试将字符串显示为ASCII字符。