Ressource Datei geht nicht
-
Hi!
Also ich bin jetzt ganz neu bei WinApi und hänge gerade am Fenstermenü fest...
also hab halt meine cpp datei, fürs Fenster und dann die ressource.h und dann meine menu.rc ...
in meiner menu.rc hab ich folgendes geschrieben:#include <windows.h> #include "resource.h" ///////////////////////////////////////////////////////////////// // // Menü // IDR_MENU1 MENU BEGIN POPUP "Datei" BEGIN MENUITEM "Öffnen" , ID_FILE_OPEN END POPUP "Optionen" BEGIN POPUP "Optionen" BEGIN MENUITEM "Option1", IP_FILE_OPTION1 END END ENDHab dann noch die Datei zum Projekt hinzugefügt und wollte compilen, aber dann kam der Fehler, dass in Zeile 13 ein Syntaxfehler wäre...in meinem Tut steht, der Syntax ist "Ressource Namen, Idenfikationsnummer"...in meinen Augen passt das da oben also, aber woran liegts?
Weiß jemand Rat?PS: Kann mir noch jemand erklären, warum beim ersten Menüpunkt nur POPUP "Datei" geschrieben werden muss und bei jedem weiteren Menüpunkt
POPUP "Optionen" BEGIN POPUP "Optionen"
-
Ah hat sich erledigt...kommt im übernächsten Kapitel vom tutorial

-
Hm...den obigen Fehler konnt ich jetzt durchs tutorial beseitigen, aber iregendwie klappts trotzdem nicht...
hier mal meine Dateien:
main.cpp:#include <windows.h> #include "resource.h" LPCSTR MainClassName = "Ein Menü-Beispiel"; LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { WNDCLASSEX wc; MSG wmsg; HWND hWnd; wc.cbSize = sizeof(WNDCLASSEX); wc.style = 0; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(ID_ICON)); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); wc.lpszClassName = MainClassName; wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ID_ICON), IMAGE_ICON, 16, 16, 0); if(!RegisterClassEx(&wc)) { MessageBox(NULL, "Windows Registrations Fehler", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } hWnd = CreateWindowEx(WS_EX_CLIENTEDGE, MainClassName, "Menü Beispiel", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 300, 150, NULL, NULL, hInstance, NULL); if(hWnd == NULL) { MessageBox(NULL, "Fehler beim Erstellen des Fensters!", "Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } while(GetMessage(&wmsg,NULL,0,0)) { TranslateMessage(&wmsg); DispatchMessage(&wmsg); } return wmsg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { char string[255]; switch (iMsg) { case WM_CLOSE: DestroyWindow(hWnd); break; case WM_DESTROY: PostQuitMessage(0); return 0; case WM_COMMAND: switch(LOWORD(wParam)) { case ID_FILE_OPEN: LoadString(GetModuleHandle(NULL), ID_STRING_OPEN, string, sizeof(string)); MessageBox(hWnd, string, "Öffnen", MB_ICONINFORMATION); break; case ID_FILE_SAVE: LoadString(GetModuleHandle(NULL), ID_STRING_SAVE, string, sizeof(string)); MessageBox(hWnd, string, "Speichern", MB_ICONINFORMATION); break; case ID_OPTIONS_OPTIONS_OPTION1: LoadString(GetModuleHandle(NULL), ID_STRING_OPTION1, string, sizeof(string)); MessageBox(hWnd, string, "Option 1", MB_ICONINFORMATION); break; case ID_OPTIONS_OPTIONS_OPTION2: LoadString(GetModuleHandle(NULL), ID_STRING_OPTION2, string, sizeof(string)); MessageBox(hWnd, string, "Option 2", MB_ICONINFORMATION); break; case ID_\1: LoadString(GetModuleHandle(NULL), ID_STRING_ABOUT, string, sizeof(string)); MessageBox(hWnd, string, "Über", MB_ICONINFORMATION); break; case ID_FILE_EXIT: DestroyWindow(hWnd); break; } break; } return DefWindowProc(hWnd, iMsg, wParam, lParam); }resource.h:
//resource.h - Headerdatei #define ID_STRING_OPEN 1 #define ID_STRING_SAVE 2 #define ID_STRING_OPTION1 3 #define ID_STRING_OPTION2 4 #define ID_STRING_ABOUT 5 #define IDR_MENU1 101 #define ID_ICON 111 #define ID_FILE_OPEN 40001 #define ID_FILE_SAVE 40002 #define ID_FILE_EXIT 40003 #define ID_OPTIONS_OPTIONS_OPTION1 40004 #define ID_OPTIONS_OPTIONS_OPTION2 40005 #define ID_ABOUT 65535menu.rc:
//main.rc - Ressourcen-Skriptdatei #include <windows.h> #include "resource.h" ///////////////////////////////////////////////////////////////// // // Menü // IDR_MENU1 MENU BEGIN POPUP "Datei" BEGIN MENUITEM "Öffnen", ID_FILE_OPEN MENUITEM "Speichern", ID_FILE_SAVE MENUITEM "Ende", ID_FILE_EXIT END POPUP "Optionen" BEGIN POPUP "Optionen" BEGIN MENUITEM "Option&1", ID_OPTIONS_OPTIONS_OPTION1 MENUITEM "Option&2", ID_OPTIONS_OPTIONS_OPTION2 END END MENUITEM "Über", ID_ABOUT END ///////////////////////////////////////////////////////////////// // // Icon // //Sollte Sie dieses oder ein anderes Icon zur Verfügung haben, //entfernen Sie bitte die Auskommentierung. // //ID_ICON ICON "goofy.ico" ///////////////////////////////////////////////////////////////// // // Stringtabelle // STRINGTABLE BEGIN ID_STRING_OPEN, "Der Dialog Öffnen" ID_STRING_SAVE, "Der Dialog Speichern" ID_STRING_OPTION1, "Erste Option im Untermenü" ID_STRING_OPTION2, "Zweite Option im Untermenü" ID_STRING_ABOUT, "Ein Menü-Beispiel\nCoded by J.Wolf" ENDWeil meine net funktioniert haben, hab ich mal genau die ausm tutorial genommen...alle 3 dateien sind zum Projekt hinzugefügt!
Aber wenn ich jetzt compile kommt folgender fehler:
resource.rc Zeile 12: Syntax Error!aber resource.rc hab ich ja garnit geschrieben

Oder erzeugts die automatisch? Bzw. muss ich die selber noch verändern?
Hier der Code der resource.rc:#include "resource.h" DLG_MAIN DIALOGEX 6, 5, 194, 106 CAPTION "Code::Blocks Template Dialog App" FONT 8, "MS Sans Serif", 0, 0, 1 STYLE 0x10CE0804 BEGIN CONTROL "&Test", IDC_BTN_TEST, "Button", 0x10010000, 138, 5, 46, 15 CONTROL "&Quit", IDC_BTN_QUIT, "Button", 0x10010000, 138, 29, 46, 15 ENDHoffe ihr könnts mir erklären !
-
Weiß keiner Rat?

-
Naja hat sich von selbst gelöst...lag am Compiler...hatte Code::Blocks und bin jetzt aber auf dev umgestiegen und da gings dann auf einmal

-
Warum zurück auf eine veralterte und nicht mehr zeitgemäße IDE?
Probier doch einfach mal die Express Edition von Visual Studio. Umsonst und meiner Meinung nach weitaus besser geeignet für WinAPI-Entwicklung.
Näheres nebst Installationsanleitung: http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.html