Bonjour a tous,
je suis en train de passer une de mes DLL en Unicode.
Malheureusement j'ai quelque problème avec la librairie Google V8.
Voici le code qui me pose problème:
Donc ici le code ne gère pas l'unicode. Voici donc ma nouvelle version:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 std::string newScript=addWrapper(source); const char* tabSource=newScript.c_str(); ScriptData* scriptData= v8::ScriptData::PreCompile(tabSource,(int)strlen(tabSource));
Quelque soit mes essaie, mon compilo me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 basic_string<TCHAR> newScript=addWrapper(source); const TCHAR* tabSource=newScript.c_str(); //Handle< String > tmp=String::New(newScript); Handle< String > tmp=String::New(newScript.c_str()); ScriptData* scriptData= v8::ScriptData::PreCompile(tmp); //ScriptData* scriptData= v8::ScriptData::PreCompile(tabSource,(int)_tcslen(tabSource));
error C2665: 'v8::String::New' : none of the 2 overloads could convert all the argument types
Donc savez vous comment convertir des wstring vers des v8::Handle< String > ou V8::String ou etc....
Je vous remercie d'avance pour votre aide
EDIT: une solution:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 v8::Local<String> convertStdStringToV8String(basic_string<TCHAR> in) { #ifdef _UNICODE const wchar_t* tabIn=in.c_str(); return String::New((uint16_t*)tabIn,(int)in.length()); #endif #ifndef _UNICODE return String::New(in.c_str(),(int)in.length()); #endif }
Partager