¿Cómo devolver una cadena de una DLL de C ++ a un ecosistema de ejecución de código MetaTrader 4?

Tengo siguiente función

__declspec(dllexport) wchar_t* __stdcall __getJson(wchar_t * listN){
setlocale(LC_ALL, "");
//function logic
wstring ant = utf8_to_wstring(result);
const WCHAR* constRes = ant.c_str();
WCHAR* tempObj=new WCHAR[ant.length()];
wcscpy(tempObj, constRes);
thread Thread([tempObj]{
    Sleep(1000);
    delete[] tempObj;
});
Thread.detach();
return tempObj;
}

Esta DLL devuelvewchar_t* a MetaTrader4.

Intenté muchas formas de devolver el valor correcto y evitar pérdidas de memoria, como establecer el tipo de retornoconst wchar_t*, creando mi propia clase con destructor condelete[] en. Pero todos estos intentos no tuvieron éxito: obtuve'??ello' en lugar de'hello'. Solo los primeros uno o dos símbolos eran incorrectos. Con la creaciónthread Funciona bien. Pero, quiero saber, ¿puede haber una mejor solución?

Respuestas a la pregunta(4)

Su respuesta a la pregunta