ufosworld
10-05-2007, 15:10
folgendes Problem:
ich habe eine verkettete Liste in der String Variablen gespeichert werden.
Eine Variable ist ein Modulname den ich mittels dlopen während der Laufzeit reinladen möchte... also das Modul
nur ist die Syntax von dlopen
> dlopen(const char *filename, int flag)
ok kein Problem dachte ich mir
wandel ich halt die string Variable aus meinem Struct in eine Char Variable um
struct TModulK
{
....
string mod_name;
.....
};
dann weiter im Quelltext:
3 char* Filename;
4 TModulK* LoadModul;
5 Filename = malloc(strlen(LoadModul->mod_name)+1);
6 memcpy (&Filename,LoadModul->mod_name, strlen(LoadModul->mod_name));
7 void* handle=dlopen(filename,....)
....
wenn ich nun kompiliere motzt er in den Zeilen 5 und 6 und 7....
ok gekuckt... malloc Parameter passen... mhhh strlen....
na toll
strlen(const char *s) aber ich versuche ja die Länge von nem String zu ermitteln...
es geht also nicht weil ich nicht die Länge von LoadModul->mod_name bestimmen kann, weil er einen char haben will und keinen String.... ^^
irgendwie dreh ich mich im Kreis...
hat jemand nen TIP??
mfg UFO
ich habe eine verkettete Liste in der String Variablen gespeichert werden.
Eine Variable ist ein Modulname den ich mittels dlopen während der Laufzeit reinladen möchte... also das Modul
nur ist die Syntax von dlopen
> dlopen(const char *filename, int flag)
ok kein Problem dachte ich mir
wandel ich halt die string Variable aus meinem Struct in eine Char Variable um
struct TModulK
{
....
string mod_name;
.....
};
dann weiter im Quelltext:
3 char* Filename;
4 TModulK* LoadModul;
5 Filename = malloc(strlen(LoadModul->mod_name)+1);
6 memcpy (&Filename,LoadModul->mod_name, strlen(LoadModul->mod_name));
7 void* handle=dlopen(filename,....)
....
wenn ich nun kompiliere motzt er in den Zeilen 5 und 6 und 7....
ok gekuckt... malloc Parameter passen... mhhh strlen....
na toll
strlen(const char *s) aber ich versuche ja die Länge von nem String zu ermitteln...
es geht also nicht weil ich nicht die Länge von LoadModul->mod_name bestimmen kann, weil er einen char haben will und keinen String.... ^^
irgendwie dreh ich mich im Kreis...
hat jemand nen TIP??
mfg UFO