R에서 일부 C++ 함수를 사용하려고합니다. 모든 C++ 함수를 DLL에 넣었습니다. 내 R 코드가R에서 C++ 로의 문자열 전달
#load the c++ DLL
dyn.load("PathToDLL\\MyCPlusPlus.dll")
#call the C++ function from R
a <- .C("MyFunc",as.character("Hello world"))
내 C++ DLL 기능은 오전 데 문제가 메시지 상자에 표시 할 때 나는 C++에 R에서 전달하는 문자열이 엉망이 있다는 것입니다
char ** _stdcall MyFunc(char ** strInput)
{
//display the string received from R
MessageBox(NULL, LPCWSTR(*strInput), L"C++ program", NULL);
return strInput;
}
입니다. 누구든지 R에서 문자열을 C++로 전달한 경험이 있습니까? 그렇다면 올바른 방향으로 나를 가리킬 수 있습니까?
감사
편집 : 아래 그림하지만
char * _stdcall MyFunc(char * strInput)
{
//display the string received from R
MessageBox(NULL, LPCWSTR(strInput), L"C++ program", NULL);
return strInput;
}
왜 * 대신 **를 사용합니까? (그냥 내가 R 전문가가 아니란 것 같아) –
처음에는 * 사용을 시도했지만 운이 없었고 다음 링크를 발견했습니다. http://www.stat.lsa.umich.edu/~yizwang/software/maxLinear/AlanRPackageTutorial.pdf char ** (13 페이지) –
조금 더 읽어보십시오 - 같은 페이지에있는 문자열에 액세스하는 방법에 대한 예제가 있습니다. –