Programm hängt sich am Schluss auf warum?
-
Hallo,
ich hab mir eine kleine Anwendung geschrieben um meine unzip.dll zu testen, um nicht immer die DLL in mein Testanwendungsverzeichniss zu kopieren, dachte ich mir ich rufe sie per LoadLibrary auf, hierfür setzte ich #define TEST. Seltsammerweise hängt sich meine Anwendung am Schluß auf wenn ich die DLL per LoadLibrary lade und ausführe. Wenn ich die DLL ins Verzeichniss meiner Testanwendung kopiere wird die Testanwendung ohne Crash beendet. Damit ihr mich nicht falsch versteht, die unzip.dll entpackt immer die Datei, hier scheins nicht zu Crashen, die Testanwendung hat wohl einen fehler. Also hier mal der Code:
#define TEST int main(int argc, char *argv[]) { int back = 0; config_t *conf; #ifdef TEST HMODULE hDLL; typedef FARPROC WINAPI DOUNZIP(config_t *conf); DOUNZIP *pDOUNZIP; #endif conf = malloc(sizeof(config_t)); memset(conf, 0, sizeof(config_t)); conf->opt_do_list = 0; conf->opt_do_extract = 1; conf->opt_do_extract_withoutpath = 0; conf->opt_overwrite = 0; conf->opt_outputmethod = 1; strcpy(conf->opt_extradirectory, "C:\\TEMP\\1"); strcpy(conf->opt_password, ""); strcpy(conf->opt_zipfilename, "pack.zip"); strcpy(conf->opt_filename_to_extract, ""); #ifdef TEST hDLL = LoadLibrary("..\\..\\build_DLL\\Release\\unzip.dll"); if(hDLL){ pDOUNZIP = (DOUNZIP *)GetProcAddress(hDLL, "DoUnzip"); if(pDOUNZIP){ pDOUNZIP(conf); }else{ printf("GetProcAddress failed!"); } FreeLibrary(hDLL); }else{ printf("LoadLibrary failed!"); } #else DoUnzip(conf); #endif free(conf); getchar(); return(back); }
-
Und was sagt der Debugger?
Wo steht Dein Programm?
-
Vielleicht solltest Du eine Tatse drücken?
-
habe diese Zeile geändert
typedef FARPROC WINAPI DOUNZIP(config_t *conf);sieht jetzt so aus
typedef FARPROC DOUNZIP(config_t *conf);jetzt gehts ohne Hänger