[c++] Resourcedatei Problem

radazong

Mitglied
Hallo erstmal!

Ich möchte mein WinAPI wissen erweitern, bzw aufbauen. Jetzt bin ich beim Erstellen von Resourcendateien angelangt, und da hörts dann auch schon auf.
Ich arbeite mit Code::Blocks, und(ja, ich..)habe den ResourceCompiler aus dem P-SDK in den Einstellungen angegeben.

Hier die Resource-Datei :

Code:
#include <windows.h> 
#include "resource.h" 

IDD_DLG DIALOG 100,100,200,150 
CAPTION "HALLO" 
STYLE WS_POPUP|WS_SYSMENU|WS_VISIBLE 

BEGIN

    DEFPUSHBUTTON "Test" ,ID_FRAME,10,10,20,10 

END




IDI_ICON ICON "f:\\programmieren\\Projekte\\WinAPI\\MyIcon.ico"


und hier die Resource-Headerdatei:

Code:
#define IDD_DLG 27325 
#define IDI_ICON 105 
#define ID_FRAME 102 
#define ID_FILLED 103 
#define ID_FFRAME 104




und hier die Fehlermeldungen:

Code:
(5) error C2059 :syntax error :'constant'  
(16)error C2059 :syntax error :'constant'

Ich könnte langsam ausrasten, weil mich bisher keine gegooglete Hilfe und auch die MSDN Hilfe nicht im geringsten voran gebracht hat....

Schonmal im Voraus vielen Dank für Hilfe und Infos

MfG,

Radazong
 
Hallo!

Dachte darin sind die ganzen Konstanten wie z.B. DIALOG und ICON gespeichert.
Hab mittlerweile auch schon ein neues roblem festgestellt.... wenn ich dir resource.rc in die main.cpp include, bekomme ich ständig Fehlermeldungen, dass er die unmittelbar darauffolgende Funktion nicht kennt.

Code:
#include <windows.h>
#include <string>
#include <iostream>
#include "resource.rc"
#include "resource.h"



LRESULT CALLBACK WndProc(HWND hWnd,UINT msg, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
HWND CreateMainWindow(HINSTANCE);

//.....


Dann bekomme ich ständig folgende Fhlermeldung:

Code:
"ERROR C2065 'WndProc' undeclared Identifier"
"ERROR C2365 'WndProc' Redefinition ; Previous Definition was a formerly unknown Identifier"

Aber auf jeden Fall schonmal vielen dank für die schnelle Antwort.

PS: windows.h auszukommentieren ändert nichts an den Fehlermeldungen.

MFG

Radazong
 
Hallo!

Dachte darin sind die ganzen Konstanten wie z.B. DIALOG und ICON gespeichert.
Hab mittlerweile auch schon ein neues roblem festgestellt.... wenn ich dir resource.rc in die main.cpp include, bekomme ich ständig Fehlermeldungen, dass er die unmittelbar darauffolgende Funktion nicht kennt.
Ja, und warum includest du die .rc Datei in die main.cpp? :confused:

Du mußt nur die resource.h includen.

Gruß
 
:eek: Ein Traum Das läuft

Wie gesagt, lerne das eben gerade erst .... vielen Dank auf jeden fall

Jetzt habe ich allerdings gleich das nächste Problem.... Ich will den Dialog, nach dem Klick auf einen Button mit CreateDialog() erzeugen so:

Code:
case WM_COMMAND:
if(lParam==(LPARAM)hButtonRect)
                        {
                       hDlg=CreateDialog(g_hInstance,MAKEINTRESOURCE(IDD_DLG),hWnd, (DLGPROC)DlgProc);
                        }

und hier die DialogProc:

Code:
BOOL CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
        case WM_INITDIALOG: MessageBox(0,"Hallo, Dialog","Dialog",MB_OK);
                            return (TRUE);
        break;
        case WM_DESTROY : EndDialog(hDlg,0);
        break;

        default: return DefDlgProc(hDlg,msg,wParam,lParam);
    }
}


und so bearbeite ich Dialog-Messages

Code:
while(GetMessage(&msg,0,0,0))
    {
        if(!IsWindow(hDlg)||!IsDialogMessage(hDlg,&msg))
        {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
        }
    }


Wenn ich jetzt allerding auf den Button in der Hauptanwendung drücke, um den Dialog zu erzeugen, beendet sich das ganze Programm sofort?
Das war meine erste Frage hier im Forum, und ich muss wirklich sagen, hier wird echt kompetente Hilfe geboten... find ich echt stark und selten :), dankeschön.
 
Zurück