Aufruf einer Funktion Im Haptprogramm .cpp



  • Dies ist mein Aufruf zur Aktualiesierung von Fenster dies steht in der Module. cpp

    extern bool erstelleAuswahlModule(ProgrammInformation info,TCHAR szAuswahlModule[], HGLOBAL * AuswahlSpeicherHandle)
    
    {
    	// Da CreateWindow zuerst ein WM_CREATE aufruft, wird dort der handle gespeichert
    	int i = 0;	
    	int Anzahl = (info).AnzahlElemente;
    
    	HWND Modulfenster = (info).handles.Modulfenster;
    	HINSTANCE Instance = (info).hInstance;
    
    	LPSTR Modul = new char[7];
    	ZeroMemory(Modul, sizeof(Modul));	
    
    	LPSTR Zahl = new char[4];
    	ZeroMemory(Zahl, sizeof(Zahl));
        //InvalidateRect(Modulfenster,NULL,TRUE);
    
    //	LoescheAuswahlSpeicherHandle(AuswahlSpeicherHandle, &info);
    
    	for( i = 0; i < Anzahl; i++ )
    	{
    		if( handle[i] != NULL )
    		{
    			DestroyWindow( handle[i] );
    		}
    	}
    
        for( i =1 ; i <= Anzahl ;i++)
    	{
    		strcpy(Modul,"Modul");
    		strcat(Modul, _itoa(i,Zahl,10));
    		handle[i-1] = CreateWindow(	szAuswahlModule,	// modulname									
    								Modul,
    								WS_CHILD | WS_VISIBLE , // Flags
    								0, 0, 0 , 0,			// Koordinatern und Größe
    								Modulfenster, //ParentWindow
    								(HMENU)NULL,					// Menu?
    								Instance,		// Instanz des Programms
    								(LPVOID)NULL					// 
    							  ) ;
    
    		//Sollte ein Fehler auftrten, so wird die Funktion mit False beendet
    		if (handle == NULL)
    			return FALSE;
    	};	
    
    	return TRUE;
    }
    

    NNun möchte ich dieses Nocheinmal in der Hauptproramm cpp Ausführen
    In menü File_Save as wie kann ich draufzugreifen

    Hauptprogram.cpp

    case ID_FILE_SAVE_AS :
    
    			{
    			//Dialog zum Speichern aufrufen
    			InitDateimenueSave(&Programminfo,&DateiMenue,ismakroprojekt);
    			DateiMenue.lpstrFile = Programminfo.Datei.FileName;
    			if(GetSaveFileName(&DateiMenue))
    			{
    				FehlerVar = DateiSpeichern(&Programminfo,DateiMenue,&BlockSpeicherHandle,&VerdrahtungsListenHandle);
    				if (FehlerVar != ok)
    				{
    					FehlerMeldung(FehlerVar,&Programminfo,0);
    					Programminfo.Datei.gespeichert = FALSE;
    					return 0;
    				}
    				else
    					Programminfo.Datei.gespeichert = TRUE;
    
    				std::string string_string(Programminfo.Datei.FileName);
    
    				char *getcwd(char *buf, int buflen);
    				wchar_t *_wgetcwd(wchar_t *buf, int buflen);
    
    				path=ExtractFilePath(APPLICATION->ExeName);
    
    						ShellExecute(hwnd ,NULL,"E:\\test\\Jahr 2008\\finish\\merker zählen lassen sich verknüpfen\\fup_editor sourcecode\\Converter.exe",Programminfo.Datei.FileName, NULL, SW_HIDE);	
    			}
    			return 0;
    			};
    

    Nach ShellExecute will ich auf die Funktion

    extern bool erstelleAuswahlModule(ProgrammInformation info,TCHAR szAuswahlModule[], HGLOBAL * AuswahlSpeicherHandle)
    

    nocheinmal zugreifen dies gelingt mir aber bis jetzt nicht



  • also normal erstellt man den funktionsprototyp in der header datei -> Module.h(pp)

    // Module.h
    #ifndef Module_h_
    #define Module_h_ Module_h_
    
    extern bool erstelleAuswahlModule(ProgrammInformation info,
                                      TCHAR szAuswahlModule[], 
                                      HGLOBAL *AuswahlSpeicherHandle);  // wobei man die bezeichner je nachdem auch weglassen kann...
    
    #endif   // Module_h_
    
    //Module.cpp
    #include "Module.h"
    extern bool erstelleAuswahlModule(ProgrammInformation info,
                                      TCHAR szAuswahlModule[], 
                                      HGLOBAL *AuswahlSpeicherHandle)
    {
        //blabla dein programm
    }
    
    // Main.cpp
    #include "Module.h"
    
    int main()
    {
       // zeugs
       erstelleAuswahlModule(info, "lol", &hwnd);
       // noch mehr zeugs
    }
    

    so geht das, ich nur nicht wie das mit extern aussieht
    eig könntest du das auchw eglassen bzw das ist die fehlerquelle...



  • es kommt keine Fehlermeldung ich weis nur nicht wie ich in der Hauptprogramm.cpp auf die Funktion

    extern bool erstelleAuswahlModule(ProgrammInformation info,TCHAR szAuswahlModule[], HGLOBAL * AuswahlSpeicherHandle)
    

    in der Module.cpp zugreifen kann



  • Bard00 schrieb:

    es kommt keine Fehlermeldung ich weis nur nicht wie ich in der Hauptprogramm.cpp auf die Funktion...in der Module.cpp zugreifen kann

    Mit Sicherheit kommt eine Fehlermeldung (und sei es das sie lautet das auf die Funktion nicht zugegriffen werden kann).

    1. Inkludierst du den entsprechenden Header in der Datei wo dein Hauptprogramm steht (also #include "Module.h")
    2. Muss in diesem Header der Prototyp der Funktion stehen (und Includeguards nicht vergessen)
    3. Inkludierst du aus der "Module.cpp" den zugehörigen Header "Module.h"

    Aber das alles wurde dir schon im Beispiel gezeigt. Ohne eine Fehlermeldung bekommst du keine weitere Hilfe.

    cu André


Anmelden zum Antworten