Geschwindigkeit Optimieren ?



  • Hi, ich verwende Visual C++ 2008 (Express)

    Ich habe folgende Funktionen:

    std::string openFile(std::string path)
    {
        std::string filename;
        //... OpenFileDialog
        return filename;
    }
    
    int main()
    {
        std::string file=openFile("c:\test.txt");
        return 0;
    }
    

    Wenn ich Geschwindigkeit optimieren ausschalte, klappt alles.
    Wenn ich es jedoch einschalte, ist "file" nicht mehr der Dateiname, sondern irgendwie uninitialisiert... 😮

    Woran könnte das liegen ?



  • Auf jeden Fall ist da ein Fehler, das sollte C:\\test.txt heißen. Also Doppel-Backslash. Sonst kann ich nichts erkennen, recht viel ist ja auch nicht da.

    MfG SideWinder



  • es ist immer sehr hilfreich den wichtigen teil weg zu lassen



  • Auf jeden Fall ist da ein Fehler, das sollte C:\\test.txt heißen. Also Doppel-Backslash.

    Ups, da habe ich mich wohl vertan, die Funktion soll natürlich einen Dateiname bekommen, keinen erwarten 🤡

    // Returns an empty string if dialog is canceled
    	void openfilename(char* filter,char*Title,char*path ) {
    
    	OPENFILENAME ofn;
    	char* fileName = path;
    	fileName[0]='\0';
    	ZeroMemory(&ofn, sizeof(ofn));
    
    	ofn.lStructSize = sizeof(OPENFILENAME);
    	ofn.hwndOwner = g_window->hWnd;
    	ofn.lpstrFilter = filter;
    	ofn.lpstrFile = fileName;
    	ofn.nMaxFile = MAX_PATH;
    	ofn.Flags = OFN_FILEMUSTEXIST ; //ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
    	ofn.lpstrTitle=Title;
    
    	ofn.lpstrDefExt = "";
    
    	int err=GetOpenFileName(&ofn) ;
    
    }
    
    	std::string OpenFileDialog(char* filter,char*Title)
    	{
    		char fileName[MAX_PATH];
    
    		openfilename(filter,Title,fileName);
    		std::string file=fileName;
    		int i=0;
    		return file;
    	}
    

    Error Handling habe ich hier noch nicht...

    Aufruf:

    std::string File=OpenFileDialog("DarkEngine Models (*.DEm)\0*.Dem\0","Select a Model:");
    

    Es scheint doch zu gehen, bei optimierter Geschwindigkeit kann der nur nicht die Werte richtig anzeigen ><
    Der Fehler lag scheinbar in der Ladefunktion, danach habe ich die Geschwindigkeits-Optimierung aus gelassen... 🙄

    Nochwas, wenn ich in dem FileDialog auf den Arbeitsplatz gehe, ist diese leer, äußerst unpraktisch ><
    Wie kann ich das machen, dass er mir dann die Laufwerke ("C:","D:","G:",...) anzeigt ?


Anmelden zum Antworten