0

我正在尝试在 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;
    }
4

1 回答 1

0

看起来您在 DLL 中的字符串是宽字符(16 位),并且传递的字符串是简单的 ASCII 字符。尝试将字符串显示为 ASCII 字符。

于 2012-07-05T15:17:42.783 回答