我正在尝试在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;
}
答案 0 :(得分:0)
看起来你的DLL中的字符串是宽字符(16个字符串),传递的字符串是简单的ASCII字符串。尝试将字符串显示为ASCII字符。