Woher kommen Konstanten wie IDS_FILE_CREATE_ERROR_MESSAGE ?



  • In dem Beispielprojekt
    http://www.codeproject.com/bitmap/drawing2bitmap.asp

    werden Konstanten wie
    - IDS_FILE_CREATE_ERROR_MESSAGE
    - IDS_WINDOWS_BITMAP_FILES

    benutzt. Wie erstellt man diese in einem neuen Projekt? Definiert sind diese in dem Beispielproject in Resource.h

    Hier ein Auszug aus dem Code den ich meine

    void CDrawing2BitmapDlg::OnSave() 
    {
    	CString szFilter;
    	szFilter.LoadString(IDS_WINDOWS_BITMAP_FILES);
    	//Display the "Save As" dialog for the user to specify a path name
    	CFileDialog dlg(FALSE, DEFAULT_BITMAP_FILE_EXTENSION, DEFAULT_BITMAP_FILE_NAME, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, NULL);
    	if(dlg.DoModal() == IDOK)
    	{
    		CString szPathName = dlg.GetPathName();
    		//Create a new file for writing
    		FILE *pFile = fopen(szPathName, "wb");
    		if(pFile == NULL)
    		{
    			AfxMessageBox(IDS_FILE_CREATE_ERROR_MESSAGE);
    			return;
    		}
    

    Der Quellcode erscheint mir logisch und korrekt, nur kompiliert er nach einem kopieren in ein neues Projekt offensichtlich nicht, weil die Konstanten fehlen. Ich wüsste jetzt gerne wie ich den Code wieder zum kompilieren bringe.

    Matthias



  • Das alte Leid 😉

    Geht mir oft auch so. Zumindest der MSVC 6.0 hat da so seine Probleme damit, die Abhängigkeiten bei einer geänderten resource.h korrekt zu erkennen. Diese wird normalerweise in der Applikationsheader eingebunden. Nun ist es aber durchaus möglich, dass Änderungen (besonders von Hand) in der resource.h zwar innerhalb der Resourcen selbst richtig gehandhabt werden, diverse CPP-Code Dateien u.U. aber nicht neu compilliert werden.

    Sollte das Dein Problem sein, versuche einen "Rebuild All", dann sollte das gehen.

    Gruss, Gio


  • Mod

    Projektübergrefiden sollte man die Verwendung von gemeinsamen Ressourcen vermeiden. Geht das nicht, kann man eine gemeinsame rc Datei erzeugen, die einen eigenen Nummernbereich von IDs verwendet.



  • Danke für die Antworten - aber ich verstehe davon gar nichts. Zum einen will ich nicht eine Resource übergreifend verwenden. Also was in der alten Resource.h und in der neuen Resource.h steht ist mir vollkommen egal, solange mein neues Projekt kompiliert.

    Ein Rebuild All funktioniert übrigens nicht.

    Um zum Kern der Frage zurückzukommen: wie und wo erzeugt/definiert man Sachen wie IDS_WINDOWS_BITMAP_FILES ?

    Matthias



  • pospiech schrieb:

    Um zum Kern der Frage zurückzukommen: wie und wo erzeugt/definiert man Sachen wie IDS_WINDOWS_BITMAP_FILES ?

    Da das offenbar Stringressourcen sind, leg sie doch einfach in der Stringtabelle an.



  • MFK schrieb:

    pospiech schrieb:

    Um zum Kern der Frage zurückzukommen: wie und wo erzeugt/definiert man Sachen wie IDS_WINDOWS_BITMAP_FILES ?

    Da das offenbar Stringressourcen sind, leg sie doch einfach in der Stringtabelle an.

    Danke, Stringtabellen waren mir bislang noch unbekannt.

    Matthias


Anmelden zum Antworten