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:
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));
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
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));
Quelque soit mes essaie, mon compilo me retourne :
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
 }