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

10.05.2010, 18:16

Beim Ausführen passiert absolut nichts!

Guten Tag die Damen und Herren!

Zu meinem Problem:

Ich habe MS VC++ 2010, habe alle INCLUDES und LIBS verwiesen. Beim Compilieren kommen auch keine Fehler!
Soweit so gut :)
Nur steht dann einfach in der VC Leiste (Ausführung) und es passiert nichts, nichts öffnet sich, kein Fenster.
Die einzige möglichkeit das zu Beenden ist per Task-Manager den Prozess zu beenden!

Die int main habe ich jetzt aus dem Forum kopiert, weil ich dachte ich hätte da was falsch gemacht, aber war das selbe Problem.

Ich hoffe und danke euch für jede hilfe! :)

Gruß

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
#include <windows.h>
#include <TriBase.h>

int WINAPI WinMain(HINSTANCE Instance, HINSTANCE PrevInstance, char* pcCommandLine, int iShowCommand)//LPSTR lpCmdLine, int nShowCmd)
{
    MSG Message;


    ZeroMemory(&Message, sizeof(MSG));
    while(Message.message != WM_QUIT)
    {
        while(PeekMessage(&Message, NULL, 0, 0, PM_REMOVE))
        {
            TranslateMessage(&Message);
            DispatchMessage(&Message);
        }
    }
    
    return false;
}



int main ()
{
    if (tbInit())
    {
        printf("Fehler bei der Inizialisierung");
    }
    else
    {
        int* pdata1 = NULL;
        int* pdata2 = NULL;
        int* pdata3 = NULL;

        int size = 1000*sizeof(int);

        if (pdata1 = static_cast<int*>(tbMemAlloc(size)))
        {
            printf("Speicherbereich 1 reserviert!\n");
        }

        if (pdata2 = static_cast<int*>(tbMemAlloc(size)))
        {
            printf("Speicherbereich 2 reserviert!\n");
        }

        if (pdata3 = static_cast<int*>(tbMemAlloc(size)))
        {
            printf("Speicherbereich 3 reserviert! \n");
        }

        for (int i = 0; i < 1000; i++)
        {
            *pdata1 = i;
            pdata1++;
        }

        for (int y = 1000; y > 0; y--)
        {
            *pdata2 = y;
            pdata2++;
        }

        pdata1 -= 999;
        pdata2 -= 999;

        memcpy(pdata3, pdata1, 1000*sizeof( int ));
        memcpy(pdata1, pdata2, 1000*sizeof( int ));
        memcpy(pdata2, pdata3, 1000*sizeof( int ));

        printf("%i\n", *pdata2);
        printf("%i", *pdata1);
    }

    tbExit();
    getchar();

    return 1;
}

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

2

10.05.2010, 18:25

Es wird kein Fenster erzeugt, weil DU keines erzeugst, siehe http://msdn.microsoft.com/de-de/library/bb384843.aspx

Außerdem wird main() nie aufgerufen. Du solltest dir einmal die grundlegende Technik von der Win32-Programmierung anschauen.

3

10.05.2010, 19:56

Ah ok logisch ;)
Hab mir das jetzt mal angeguckt und versucht mal zu verarbeiten in meinem Schädel!
Jetzt hab ich folgende Meldung:

Quellcode

1
2
3
4
5
6
1>c:\users\dine\desktop\gamedevolpment\tribase\include\dshowbaseclasses\wxdebug.h(329): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'm_pString'
1>c:\users\dine\desktop\gamedevolpment\tribase\include\dshowbaseclasses\wxdebug.h(329): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\dine\desktop\gamedevolpment\tribase\include\dshowbaseclasses\wxdebug.h(329): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>c:\users\dine\desktop\gamedevolpment\tribase\include\dshowbaseclasses\wxdebug.h(326): error C2065: 'm_pString': nichtdeklarierter Bezeichner
1>c:\users\dine\desktop\gamedevolpment\tribase\include\dshowbaseclasses\wxdebug.h(351): error C2065: 'm_pString': nichtdeklarierter Bezeichner
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

4

10.05.2010, 20:18

Ohne Quellcode kann man nicht sehen, worin der Fehler steckt...

5

10.05.2010, 20:35

Ok hier mein Gebasteltes:

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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#include <tchar.h>
#include <windows.h>
#include <TriBase.h>
#include <stdlib.h>
#include <string.h>


static TCHAR szWindowClass[] = _T("win32app");
static TCHAR szTitle[] = _T("Win32 Guided Tour Application");
HINSTANCE hInst;

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

int WINAPI WinMain(HINSTANCE hInstance,
                HINSTANCE hPrevInstance,
                LPSTR lpCmdLine,
                int nCmdShow)
{
    
    WNDCLASSEX wcex;

    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

    if (!RegisterClassEx(&wcex))
    {
        MessageBox(NULL,
            _T("Call to RegisterClassEx failed!"),
            _T("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    hInst = hInstance; 
    

    HWND hWnd = CreateWindow(
        szWindowClass,
        szTitle,
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT,
        500, 100,
        NULL,
        NULL,
        hInstance,
        NULL
    );

    if (!hWnd)
    {
        MessageBox(NULL,
            _T("Call to CreateWindow failed!"),
            _T("Win32 Guided Tour"),
            NULL);

        return 1;
    }

    
    ShowWindow(hWnd,
        nCmdShow);
    UpdateWindow(hWnd);


    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    main();

    return (int) msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
    TCHAR greeting[] = _T("Hello, World!");

    switch (message)
    {
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);

    
            5, 5,
            greeting, _tcslen(greeting);
    
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
        break;
    }

    return 0;
}





int main ()
{
    if (tbInit())
    {
        printf("Fehler bei der Inizialisierung");
    }
    else
    {
        int* pdata1 = NULL;
        int* pdata2 = NULL;
        int* pdata3 = NULL;

        int size = 1000*sizeof(int);

        if (pdata1 = static_cast<int*>(tbMemAlloc(size)))
        {
            printf("Speicherbereich 1 reserviert!\n");
        }

        if (pdata2 = static_cast<int*>(tbMemAlloc(size)))
        {
            printf("Speicherbereich 2 reserviert!\n");
        }

        if (pdata3 = static_cast<int*>(tbMemAlloc(size)))
        {
            printf("Speicherbereich 3 reserviert! \n");
        }

        for (int i = 0; i < 1000; i++)
        {
            *pdata1 = i;
            pdata1++;
        }

        for (int y = 1000; y > 0; y--)
        {
            *pdata2 = y;
            pdata2++;
        }

        pdata1 -= 999;
        pdata2 -= 999;

        memcpy(pdata3, pdata1, 1000*sizeof( int ));
        memcpy(pdata1, pdata2, 1000*sizeof( int ));
        memcpy(pdata2, pdata3, 1000*sizeof( int ));

        printf("%i\n", *pdata2);
        printf("%i", *pdata1);
    }

    tbExit();
    getchar();

    return 1;
}

6

10.05.2010, 20:46

Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

7

10.05.2010, 20:47

Binde mal zum Testen die tribase.h nicht ein und lasse die main()-Funktion unten weg, da du mittels printf() in einem Win32-Programm nichts ausgeben kannst. Dann solltest du eigentlich ein Fenster zu sehen bekommen.

8

10.05.2010, 20:51

main ruft er schon auf aber erst ganz am Ende von WinMain... Nur ich versteh den Teil nicht:



C-/C++-Quelltext

1
2
            5, 5,
            greeting, _tcslen(greeting);




vllt liegt da Fehler bin mir aber nicht sicher

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

9

10.05.2010, 21:02

Dass er main() doch aufruft, habe ich gerade auch gemerkt. Aber der Fehler liegt laut Compilermeldung in c:\users\dine\desktop\gamedevolpment\tribase\include\dshowbaseclasses\wxdebug.h. Deswegen habe ich ihm geraten, dass er alles was mit TriBase zu tun hat für den Anfang weglassen soll, da es momentan eh noch nichts bringt.

10

10.05.2010, 21:57

Dass er main() doch aufruft, habe ich gerade auch gemerkt. Aber der Fehler liegt laut Compilermeldung in c:\users\dine\desktop\gamedevolpment\tribase\include\dshowbaseclasses\wxdebug.h. Deswegen habe ich ihm geraten, dass er alles was mit TriBase zu tun hat für den Anfang weglassen soll, da es momentan eh noch nichts bringt.
Richtig, nachdem ich alles weggemacht hab hab ich jetzt das schöne weiße Fenster:)
Dann werd ich mich mal näher damit befassen! Dank an insane für die weiteren Hilfestellungen! ;)
Und danke an BurnigWave:)

Mich würde trotzdem interessieren warum diese Fehler beim Compilieren kommen!?
Die kommen ja auch dann schon wenn ich allein die TriBase.h include!

Werbeanzeige