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

Fab

Treue Seele

  • »Fab« ist der Autor dieses Themas

Beiträge: 85

Wohnort: Iwo in der Eifel - nähe von Euskirchen

Beruf: Schüler

  • Private Nachricht senden

1

30.12.2008, 12:09

[Erledigt] WINAPI

Hi
ich arbeite mich gerade neben bei in die Windows-Programmierung ein.
Ok einarbeiten ist etwas übetrieben. Ich mache mich damit vertraut, sagen wir es mal so.
Ich habe mir ein gutes Tutorial aus dem Inet gesucht und bin gerade damit am arbeiten.
Ich hab es mir durchgelesen und dann in einer etwas abgewandelten Form den Code nachprogrammiert.


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define STRICT
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int nShowCmd) {
    const char chText[] = "Hallo. Wie gehts? Alles klar?";
    int nResponse = MessageBox(NULL, chText, "Wie gehts?", MB_ICONINFORMATION | MB_OKCANCEL | MB_DEFBUTTON1);

    if(IDOK == nResponse) {
        MessageBox(NULL, "Sie haben auf OK gedrückt", "Ok", MB_ICONINFORMATION | MB_OKCANCEL | MB_DEFBUTTON1);
    } else if(IDCANCEL == nResponse) {
        MessageBox(NULL, "Sie haben auf Abbrechen gedrückt", "Abbrechen", MB_ICONINFORMATION | MB_OKCANCEL | MB_DEFBUTTON1);
    }

    return 0;
}


Das ist mein Code.
Wenn ich das aber nun kompilieren will, mit Visual Studio 2005 C++ Express Edition, kommt folgende Meldung:

Zitat


main.cpp
Verknüpfen...
main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__MessageBoxA@16" in Funktion "_WinMain@16".
C:\Dokumente und Einstellungen\Fab\Eigene Dateien\Visual Studio 2005\Projects\WinTest\Debug\WinTest.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Fab\Eigene Dateien\Visual Studio 2005\Projects\WinTest\WinTest\Debug\BuildLog.htm" gespeichert.
WinTest - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Ich denke mal, das ich irgendwas umstellen muss.
Aber was?
Ich hoffe ohr könnt mir helfen.

Schonmal danke im vorraus.

Greetings Fab
;)

PS Sorry falsche Kategorie
Eins hab ich erkannt - ich werde immer Schüler bleiben, ein Leben lang

2

30.12.2008, 12:39

Geh mal auf Projekteinstellungen->Konfigurationseigenschaften->Linker-System.

Ist dort bei SubSystem zufällig Konsole angegeben?
Wenn ja auf Windows stellen.

Anonymous

unregistriert

3

30.12.2008, 12:42

k|haos
Ich würde die Linker-Meldung noch mal lesen.

Fab
Mach mal das STRICT weg.

Fab

Treue Seele

  • »Fab« ist der Autor dieses Themas

Beiträge: 85

Wohnort: Iwo in der Eifel - nähe von Euskirchen

Beruf: Schüler

  • Private Nachricht senden

4

30.12.2008, 12:44

nicht Festgelegt

Das war nicht festgelegt.
Hab das jetzt einfach mal auf Windows umgestellt.
Kommen trotzdem Fehler.
Sind auch die gleichen. :(

Aber trotzdem danke.

MFG
Fab
;)
Eins hab ich erkannt - ich werde immer Schüler bleiben, ein Leben lang

Fab

Treue Seele

  • »Fab« ist der Autor dieses Themas

Beiträge: 85

Wohnort: Iwo in der Eifel - nähe von Euskirchen

Beruf: Schüler

  • Private Nachricht senden

5

30.12.2008, 12:46

Klappt auch nicht

@UL:

Das klappt leider auch nicht :(

Woran kann das denn liegen?
Muss ich vll noch eine lib oder so einbinden?

Greetings Fab
;)
Eins hab ich erkannt - ich werde immer Schüler bleiben, ein Leben lang

Anonymous

unregistriert

6

30.12.2008, 12:48

Dann mal die user32 einbinden, obwohl die eigentlich just in time dabei sein müsste.

p.s.: Ändere deine Linker-Einstellungen sofort wieder um! Das was k|haos hat mit deinem Problem soviel zu tun wie Klopapier und Nutella.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#pragma comment(lib,"user32.lib")
#include <windows.h>
#include <tchar.h>
 
int WINAPI _tWinMain (::HINSTANCE instance, ::HINSTANCE prev_instance, ::TCHAR* argument, int show) 
{
    ::MessageBox (0, _T ("Hallo Welt!"), _T ("Mein erstes Programm"), MB_OK);
    return 0;
} 

7

30.12.2008, 12:51

Jopp muss UL recht geben ... hab den Fehler nur halb gelesen und nicht mal des. Sorry.

Fab

Treue Seele

  • »Fab« ist der Autor dieses Themas

Beiträge: 85

Wohnort: Iwo in der Eifel - nähe von Euskirchen

Beruf: Schüler

  • Private Nachricht senden

8

30.12.2008, 12:54

Es klappt

Juhu es klappt.

Danke.
Ich hab die user32.lib eingebunden.
Jetzt klappt alles prima.

MFG
Fab
;)
Eins hab ich erkannt - ich werde immer Schüler bleiben, ein Leben lang

Werbeanzeige