Hola tengo una DLL que exporta esta función:
//Al principio era: vector<string> split(string str,char c);
void split(string str, char c,vector<string>* strings){
stringstream stream(str);
string item;
while (getline(stream, item, c)){
strings->push_back(item);
}
}
Luego:
HMODULE lib = LoadLibrary("C:\\Users\\Dimitar\\Documents\\Visual Studio 2013\\Projects\\BasicTools\\Release\\BasicTools.dll");
if (lib == NULL){
e("Library failed to load!");
}
_split split = (_split)GetProcAddress(lib, "split");
if (!split){
e("Failed to load split!");
}
string test = "Hola me llamo Jose!";
vector<string> strings;
split(test, ' ', &strings);
for (auto str : strings){
cout << str << endl;
}
Recibo error por alocar memoria, me lo esperaba...
Hay alguna manera de exportar vector y string?
Un saludo
Alocar xD *reservar*
¿Con vector<string> split(string str,char c); te da problemas?
Cita de: ivancea96 en 16 Agosto 2015, 13:27 PM
Alocar xD *reservar*
¿Con vector<string> split(string str,char c); te da problemas?
Reservar, oops xD
vector<string> split(string str, char c){
vector<string> strings;
stringstream stream(str);
string item;
while (getline(stream, item, c)){
strings.push_back(item);
}
return strings;
}
typedef vector<string>(*_split)(string,char);
//...
vector<string> strings = split(test, ' ');
Error:
0xC0000005: Infracción de acceso al leer la ubicación 0x0111EFFC.
No lo se quizas si...
vector<string> strings = new vector<string>();
Saludos!¡.