Ressource-Datei (.rc) einbinden
-
Hallo,
Ich habe eine Dialog-Box erstellt und in einer .rc - Datei beschrieben.
Jetzt habe ich das Problem, dass die Ressource-Datei einfach ignoriert wird, sodass die Dialogbox nicht startet.
Wie könnte ich jetzt die Ressource-Datei einbinden?MFG
DieTuerEdit: Ich habe VS 2008
-
"Project|Add Item..|Ressource file"?
-
Nein, das ist nicht mein Problem. Ich habe die Ressource-Datei in dem Projekt eingebunden, sie wird aber ignoriert, wenn ich das Programm starte.
-
Dann solltest Du mal debuggen und die Fehlermeldung posten... (GetLastError ?)
-
Der debuggt ohne Fehler.
Also nochmal das Problem:
Ich habe ein Programm, bei dem eine Dialogbox erstellt wird.
Da gibt es einmal die "Ressource.h", bei der ich die IDs der Objekte definiere, dann noch die "Dialogbox.cpp", bei der ich Ressource.h include und in der ich die Dialogbox starte (via DialogBox(...);), und die Ressource-Datei "Ressource.rc", die ich mit einem anderem Programm geschrieben habe, weil VS2008 Express das erstellen von .rc-Datein nicht unterstützt, und dann hinzugefügt habe, also dem Projekt hinzugefügt habe.
Wie mache ich jetzt VS klar, dass in der Ressource-Datei die Definition der Dialogbox steckt?
-
Du mußt (zusätzlich zur Einbindung der ".rc"-Datei) auch noch die ".res"-Datei dazulinken.
Eine Einführung zu MFC-Ressourcen gibt http://www.cpp-tutor.de/mfc/mfc/kap7/lektion1.htm und unter http://www.cpp-tutor.de/mfc/mfc/kap8/kapitel8.htm steht, wie man den VS Ressource-Editor benutzt...
Ups: habe jetzt erst gelesen, daß du nur die VS Express Version hast, d.h. du verwendest eine Standard-Windows-Anwendung (C++ mit der WinAPI)?
-
Th69 schrieb:
Du mußt (zusätzlich zur Einbindung der ".rc"-Datei) auch noch die ".res"-Datei dazulinken.
Welche .res-Datei?
-
Wie linke ich die .rc-Datei?
-
So, ich habe jetzt VS 2010 Ultimate, habe dort die Dialogbox nochmal erstellt, und die automatisch erzeugte "resource.h" included, das Problem besteht aber weiterhin
-
Hm, das Problem muss irgendwo in meinem Code sein, ich habe das jetzt nochmal so ausprobiert, also mit einem neuen Projekt, und da hat es geklappt.
Jetzt gehts auf Fehlersuche
-
Da ist der Fehler: Die Funktion DialogBox(...) gibt -1 zurück.
Was soll ich jetzt machenHier ist der Quellcode:
HINSTANCE hInst; int iResult; ZeroMemory(&hInst, sizeof(HINSTANCE)); g_pD3DTemp = Direct3DCreate9(D3D_SDK_VERSION); if(g_pD3DTemp == NULL) return IE_ERROR; iResult = (int)(DialogBox(hInst, MAKEINTRESOURCE(IDD_D3D_SETTINGS), NULL, InitDialogProc)); ZeroMemory(&g_pD3DTemp, sizeof(PDIRECT3D9)); if(iResult == 0) return IE_OK; // Ok else if(iResult == 1) return IE_ERROR; // Fehler else return IE_CANCELED; // Abgebrochen
-
Edit:GetLastError() gibt mir 1813 zurück.
-
Hallo,
das Tool "ErrLook" sagt bei 1813:
"Der angegebene Ressourcentyp wurde nicht in der Image-Datei gefunden."Sorry, die ".res"-Datei wird wohl nur bei MFC benutzt.
Aber schau mal bei http://msdn.microsoft.com/en-us/library/6e7446zd(v=VS.80).aspx nach...
-
Mach doch die EXE mal einfach mit VS direkt auf und schau, ob die Ressourcen drin sind...
-
Das Projekt erstellt eine dynamische Bibiloteksdatei(.dll), die ich in ein anderes Projekt einbinde, in welchem die Dialogbox erstellt wird.
-
Und warum setzt Du dann hInst auf NULL???? Setze hier bitte den Wert der DLL ein!
-
Die Tuer schrieb:
Das Projekt erstellt eine dynamische Bibiloteksdatei(.dll), die ich in ein anderes Projekt einbinde, in welchem die Dialogbox erstellt wird.
Hättest du das nicht eher schreiben können?!
-
Sorry, hab ich vergessen
-
Ich nutze jetzt .lib, da ich einige Probleme mit .dll habe.
-
Wird die .rc-Datei überhaupt in die .lib mit reingeschrieben?