是否有一種直接的方法來管理包裝器中的C++/CLI字符串以用於本地C++方法的char *參數?System ::字符串引用C++ char *參數
例如:
void Test::TestFunc(System::String ^%str)
{
// right conversion to char* and consider the reference
}
本地C++函數:
void TestB::Func(char *str)
{
...
}
我取巧的辦法:
void Test::TestFunc(System::String ^%szRecvBuffer)
{
pin_ptr<const wchar_t> szRecvBufferP = PtrToStringChars(szRecvBuffer);
// Convert to a char*
size_t origsize = wcslen(szRecvBufferP) + 1;
const size_t newsize = 100;
size_t convertedChars = 0;
char nstring[newsize];
wcstombs_s(&convertedChars, nstring, origsize, szRecvBufferP, _TRUNCATE);
strcat_s(nstring, " (char *)");
char *szRecvBufferCh = nstring;
m_object->TestCommand(szRecvBufferCh); // parameter char*
System::String ^tmp = gcnew System::String(szRecvBufferCh);
szRecvBuffer = tmp;
}
迎接leon22
是的,我知道這篇文章。但是,你將如何處理引用(需要將函數的答案寫入字符串中) - >和我的棘手方式相同? – leon22
在這種情況下,我超出了我的CLI深度!我不得不承認,我不太理解你的問題:「需要函數的答案到字符串中」不會爲我解析。 –