Problemm mit einer einfeachen String funktion
-
Hi, ich möchte eine DLL laden und hab dafür die einfache Funktion um den Pfad der DLL herauszufinden(sie liegt immer im verzeichnis von Programm):
char * dllname() { // return "C:\\KeyDll.dll"; char lpszDllDirectory[256]; getcwd( lpszDllDirectory, 256); if (lpszDllDirectory[strlen(lpszDllDirectory)-1] != '\\' ) { strcat(lpszDllDirectory,"/"); } strcat(lpszDllDirectory,"KeyDll.dll"); //MessageBox(NULL,lpszDllDirectory,"",NULL); return lpszDllDirectory; }Allerdings funtkioniert das so nur alle 5 mal oder so.
Wenn ich dagegen
char * dllname() { return "C:\\KeyDll.dll"; }schreibe, funktionierts immer. Ich habe allerdings mit der MessageBox immer den selbst erstellten Pfad der DLL überprüft, und er stimmt. Woran kann das liegen?
Danke schonmal
-
Das geht nicht, weil du einen Zeiger auf eine lokale Variable zurückgibst
Die werden ja bei Funktions-Ende zerstört. Entweder du gibst einen std::string zurück (wir sind ja im C++-Forum), oder du machst die lpszDllDirectory-Variable statisch, dann verschwindet sie nicht.
-
klaro thx :).
Ich liebe dieses Forum
.