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);
    }
    

  • Mod

    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


Anmelden zum Antworten