请帮我
在这里,我想将转换后的数据保存到新的指针中。但是每次数据都被最新数据覆盖。
请检查我的代码
TCHAR nameBuffer[256]; //Globally Declared
void Caller()
{
TCHAR* ptszSecondInFile= QStringToTCharBuffer(userName);
TCHAR* ptszOutFile=QStringToTCharBuffer(Destinationfilename);
}
TCHAR *dllmerge::QStringToTCharBuffer( QString buffer )
{
memset(nameBuffer, 0, sizeof(nameBuffer));
#if UNICODE
_tcscpy_s(nameBuffer, _countof(nameBuffer), buffer.toUtf8());
#else
_tcscpy_s(nameBuffer, _countof(nameBuffer), buffer.toLocal8Bit());
#endif
_tprintf( _T( "nameBuffer %s\n" ), nameBuffer );
return nameBuffer;
}
我正在使用ptszSecondInFile和ptszOutFile这两个答案。
是否可以使用TCHAR * nameBuffer [256];
最佳答案
似乎您在QStringToTCharBuffer中使用了全局变量nameBuffer。将其设置为本地...或者只是在两次调用之间在调用者中复制nameBuffer的值...否则第二次调用将覆盖全局变量的值...
作为对未来的编程建议:除非真正需要,否则请勿使用全局变量!!!在这种情况下,您不必使用它。