Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

27.07.2006, 15:37

Problem mit Plattform SDK?

Hi,

ich hab aus Petzolds Buch den code mit den Editboxen abgetippt um jetzt ein bisschen damit rumzuexperimentieren:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#define UNICODE
#include <windows.h>
#define ID_EDIT 1


LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

WCHAR name[] = TEXT("Mein Fenster");

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)

{
    
    HWND         hwnd;
    MSG          msg;
    WNDCLASS     wndclass;

    ::ZeroMemory(&wndclass, sizeof(WNDCLASS));

    wndclass.style        = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc  = WndProc;
    wndclass.cbClsExtra   = 0;
    wndclass.cbWndExtra   = 0;
    wndclass.hInstance    = hInstance ;
    wndclass.hIcon        = LoadIcon (NULL, IDI_APPLICATION) ;
    wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH);
    wndclass.lpszMenuName = NULL;
    wndclass.lpszClassName= name;


    RegisterClass(&wndclass);


    hwnd=CreateWindow (name,
        TEXT ("Das erste echte Programm"),
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        NULL,
        NULL,
        hInstance,
        NULL);

    ShowWindow (hwnd, iCmdShow);
    UpdateWindow (hwnd);




    while (GetMessage (&msg, NULL, 0, 0))
    {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }
    return msg.wParam;

}


LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC         hdc;
    PAINTSTRUCT ps;
    RECT        rect;
    static HWND hwndEdit;


    switch (message)
    {


    case WM_CREATE:              
            //Editfenster

            hwndEdit= CreateWindow (TEXT ("edit"), NULL, 
                WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_BORDER |
                ES_LEFT | ES_MULTILINE |  ES_AUTOHSCROLL | ES_AUTOVSCROLL,
                0,0,0,0, hwnd, (HMENU) ID_EDIT,
                ((LPCREATESTRUCT) lParam) -> hInstance, NULL);
            return 0;




    case WM_SETFOCUS:
        SetFocus (hwndEdit) ;
        return 0;



    case WM_SIZE:
        //Positioniere Edit Fenster

        MoveWindow (hwndEdit, 0, 0, LOWORD (lParam), HIWORD (lParam), TRUE);
        return 0;


    case WM_COMMAND:
        if (LOWORD (wParam) == ID_EDIT)
            if (HIWORD (wParam) ==EN_ERRSPACE || 
                HIWORD (wParam) == EN_MAXTEXT)
            MessageBox (hwnd, TEXT ("Edit control out of space"),
                              name, MB_OK | MB_ICONSTOP) ;
        return 0;


    case WM_DESTROY:
        PostQuitMessage (0);
        return 0;
    }

    return DefWindowProc (hwnd, message, wParam, lParam);
}


allerdings klappt das nicht. Ich hab mehrmals nachgeschaut obs klappt und auch schon koschka belästigt ^^
aber bei dem scheints zu klappen. Ich hab geschaut oob ich das plattform sdk richtig installiert habe doch da stimmt alles.
Die Fehlermeldung sieht wiefolgt aus:

Quellcode

1
2
3
4
5
6
7
8
------ Build started: Project: win32api, Configuration: Debug Win32 ------
Linking...
LIBCMT.lib(wincrt0.obj) : error LNK2001: unresolved external symbol ___ImageBase
LIBCMT.lib(pesect.obj) : error LNK2001: unresolved external symbol ___ImageBase
D:\Dokumente und Einstellungen\ThEpROGrammmer\Eigene Dateien\Visual Studio 2005\Projects\win32api\Debug\win32api.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://d:\Dokumente und Einstellungen\ThEpROGrammmer\Eigene Dateien\Visual Studio 2005\Projects\win32api\win32api\Debug\BuildLog.htm"
win32api - 3 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



hat jemand ne idee an was es liegen könnte?

TLEP

Frischling

Beiträge: 22

Wohnort: bei Riesa

  • Private Nachricht senden

2

27.07.2006, 16:40

also ich hab den Code einfach mal in ein neues Projekt bei mit kopiert und kompiliert... bis auf 5 Warnungen funktioniert es.
Dieser LNK2001 bekomm ich meistens, wenn ich irgend eine Lib vergessen hab einzubinden...
mehr kann ich leider auch nich sagen
"A programmer is just a tool which converts coffeine into code"
(anonym)

3

27.07.2006, 20:49

was für ne lib soll ich denn vergessen haben? Ich hbrauch dfür keine

TLEP

Frischling

Beiträge: 22

Wohnort: bei Riesa

  • Private Nachricht senden

4

27.07.2006, 20:55

also, ich vermute es nur...
ich glaub auch nicht das es daran liegt, schließlich installiert die SDK eigentlich alles notwenige. Libs die ich meine sind:
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib .
"A programmer is just a tool which converts coffeine into code"
(anonym)

Anonymous

unregistriert

5

27.07.2006, 20:56

Bei VC 05 Express muss man das extra einstellen...sollte man gleich machen
-> GermanGameDev!

TLEP

Frischling

Beiträge: 22

Wohnort: bei Riesa

  • Private Nachricht senden

6

27.07.2006, 21:04

Ich nutze selbst Express. Aus der Fehlermeldung geht aber hervor, das Theprogrammer VS05 nutzt. Kann mich auch irren, wenn er den Ordner umgenannt hat.
"A programmer is just a tool which converts coffeine into code"
(anonym)

7

27.07.2006, 21:20

ich hab Visual C++ Studio 2005 Express und alles wie im Germangamedev tutorial eingebunden!

TLEP

Frischling

Beiträge: 22

Wohnort: bei Riesa

  • Private Nachricht senden

8

27.07.2006, 21:36

wie gesagt, bei mir fünktioniert der Code, obwohl wir den selben Kompiler haben, einzige Möglichkeit ist als nur, dass wir unterschiedliche Einstellungen haben...
"A programmer is just a tool which converts coffeine into code"
(anonym)

9

28.07.2006, 08:53

oh mein gott, dass ist mir jetzt so peinlich ich sag nicht an was es gelegen hat.......

Sheddex

unregistriert

10

28.07.2006, 10:20

Los, sag's ;)

Werbeanzeige