falsche konfigurierung??
-
hy @ all!!
ich habe ein kleines problem, denn ich habe winapi auf mein vs2005 konfiguriert, wie es beschrieben wird, doch es funkt nicht!!!
Fehlermeldung:
1>------ Erstellen gestartet: Projekt: Winapi, Konfiguration: Release Win32 ------ 1>Kompilieren... 1>Winapi.cpp 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(222) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'PVOID64' 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(222) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(2857) : warning C4312: 'Typumwandlung': Konvertierung von 'ULONG_PTR' in größeren Typ 'PVOID *' 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(2858) : warning C4312: 'Typumwandlung': Konvertierung von 'ULONG_PTR' in größeren Typ 'PVOID' 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(5940) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Buffer' 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(5940) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(5940) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(9594) : warning C4312: 'Typumwandlung': Konvertierung von 'ULONG_PTR' in größeren Typ '_TEB *' 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winbase.h(1775) : warning C4311: 'Typumwandlung': Zeigerverkürzung von 'PVOID' zu 'LONG_PTR' 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winbase.h(1775) : warning C4311: 'Typumwandlung': Zeigerverkürzung von 'PVOID' zu 'LONG_PTR' 1>C:\Programme\Microsoft Visual Studio 8\VC\include\winbase.h(1775) : warning C4312: 'Typumwandlung': Konvertierung von 'LONG_PTR' in größeren Typ 'PVOID' 1>.\Winapi.cpp(9) : error C2731: 'WinMain': Überladen der Funktion nicht möglich 1> .\Winapi.cpp(8): Siehe Deklaration von 'WinMain' 1>.\Winapi.cpp(10) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [6]' in 'LPCWSTR' nicht möglich 1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat. 1>Das Buildprotokoll wurde unter "file://d:\Files\My Files\Visual Studio 2005\Projects\Winapi\Winapi\Release\BuildLog.htm" gespeichert. 1>Winapi - 7 Fehler, 6 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Source Code:
#include "stdafx.h" #include <windows.h> int WINAPI WinMain(HINSTANCE hI, HINSTANCE, TCHAR*, int) { MessageBox(NULL, "Hallo", "", MB_OK); WAIT; return 0; }
-
-
Falsche Programmiertechnik.
Du gibst WinMain einige Parametertypen an, aber nicht, welche Parameter es sein sollen. Die werden nämlich von Windows bestimmt.
Der Funktionsheader von WinMain sollte so aussehen:int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
-
danke für die schnellen Antworten, doch sie helfen mir nicht weiter es gibt noch imma fehlermeldungen, hab psdk aber installiert und mit der anleitung konfiguriert!!
-
Dann zeig uns doch das Prog und die Meldungen- sind bestimmt nicht mehr die selben wie zu Beginn.
-
hy
Fehlermeldungen:
1>------ Erstellen gestartet: Projekt: Winapi, Konfiguration: Release Win32 ------
1>Kompilieren...
1>Winapi.cpp
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(222) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'PVOID64'
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(222) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(2857) : warning C4312: 'Typumwandlung': Konvertierung von 'ULONG_PTR' in größeren Typ 'PVOID *'
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(2858) : warning C4312: 'Typumwandlung': Konvertierung von 'ULONG_PTR' in größeren Typ 'PVOID'
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(5940) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Buffer'
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(5940) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(5940) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winnt.h(9594) : warning C4312: 'Typumwandlung': Konvertierung von 'ULONG_PTR' in größeren Typ '_TEB *'
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winbase.h(1775) : warning C4311: 'Typumwandlung': Zeigerverkürzung von 'PVOID' zu 'LONG_PTR'
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winbase.h(1775) : warning C4311: 'Typumwandlung': Zeigerverkürzung von 'PVOID' zu 'LONG_PTR'
1>C:\Programme\Microsoft Visual Studio 8\VC\include\winbase.h(1775) : warning C4312: 'Typumwandlung': Konvertierung von 'LONG_PTR' in größeren Typ 'PVOID'
1>.\Winapi.cpp(11) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [6]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>Das Buildprotokoll wurde unter "file://d:\Files\My Files\Visual Studio 2005\Projects\Winapi\Winapi\Release\BuildLog.htm" gespeichert.
1>Winapi - 6 Fehler, 6 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========#include "stdafx.h" #include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MessageBox(NULL, "Hallo", "", MB_OK); WAIT; return 0; }
-
Ich meine in einer der Fehlermeldungen gesehen zu haben, dass eine String-Conversion von const char* zu LPCWSTR nicht möglich ist, d.h. dein Projekt ist auf UNICODE eingestellt.
Schreib vor die Stringliterale mal ein L, bzw. ein _() oder _T() drum also
MessageBox(NULL, L"Hallo", L"", MB_OK); // oder MessageBox(NULL, _T("Hallo"), _T(""), MB_OK); // oder MessageBox(NULL, _("Hallo"), _("Hallo"), MB_OK);
oder aber, und das wird wohl für die nahe Zukunft einfacher sein: Stelle in deinen Einstellungen von UNICODE zu MBCS.