请帮我
在这里,我想将转换后的数据保存到新的指针中。但是每次数据都被最新数据覆盖。
请检查我的代码

 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的值...否则第二次调用将覆盖全局变量的值...

作为对未来的编程建议:除非真正需要,否则请勿使用全局变量!!!在这种情况下,您不必使用它。

09-04 07:27