call by reference
-
Hallo,
ich übergebe der funktion folgendes:
mql-code
string array[2] = {"Hallo" , "Welt"} DLL_Test(string& array[]); DLL_Test(array);
MT4_EXPFUNC void __stdcall DLL_Test(char * p) { *p[0] = "i"; }
Ich bekomme beim compilen leider folgenden fehler:
error C2440: '=': 'const char [2]' kann nicht in 'char' konvertiert werden 1> Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
Woran liegt das? Bitte um dringende Hilfe!!
Danke vielmals
-
man kann einem char* nicht einen string zuweisen.
Du kannst höchstens kopieren, aber das ist sehr unsicher, wenn Du nicht zu Buffergröße mit angibst:M
T4_EXPFUNC void __stdcall DLL_Test(char * p) { strcpy(p,"i"); }
Weiterhin ist die Übergabe einen std::string über eine DLL Schnittstelle nur sicher wenn Du die CRT als DLL verwendest und für DLL wie auch EXE garantiert den gleichen Compiler verwendest!