Conversion de string c++ --> V8::String
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:
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:
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:
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
} |