WinApi in Visual C++ Express 2008?
-
In VC2008 ist das PSDK schon dabei... nur in VC2005 musste man es extra runterladen...
-
Hab viele Sachen vesucht bis gar nichts mehr ging deshalb hab ich VC++2008 neuinstalliert. Ich will jetzt einfach wissen wie ich ein WinApi Programm erstell und programmiere(Vielleicht bitte eine kleine Anweisung?).
---------------------------------------------------------
Kann ich denn in VC++2008 auch Ressourcen verwenden?Edit: Erst erstell ich ein Projekt 'Win32 Projekt'
Windows anwendung - lerres Projektund füge *.cpp Datei dazu mit diesen Code:
#include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LPCSTR lpszAppName = "AppName"; LPCSTR lpszTitle = "Meine erste Applikation"; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { HWND hWnd; MSG msg; WNDCLASSEX wc; wc.cbSize = sizeof(WNDCLASSEX); wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL,IDC_ARROW); wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wc.lpszClassName = lpszAppName; wc.lpszMenuName = lpszAppName; wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); if( RegisterClassEx(&wc) == 0) return 0; hWnd = CreateWindowEx(NULL, lpszAppName, lpszTitle, WS_OVERLAPPEDWINDOW, 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); if( hWnd == NULL) return 0; ShowWindow(hWnd, iCmdShow); UpdateWindow(hWnd); while (GetMessage(&msg, NULL, 0, 0) > 0) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT umsg, WPARAM wParam, LPARAM lParam) { switch (umsg) { case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(hWnd, umsg, wParam, lParam); }und klick auf dieses Grüne Play(Debug Win32)
Dann kommt auf "Microsoft (r) C/C++ Compiler Driver funktioniert nicht mehr"
dann klick ich auf Programm schließen.
Dann steht da das es das Program nicht finden kann.und das ist glaube ich der Buildlog:
1>------ Erstellen gestartet: Projekt: winapitest, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>Projekt : error PRJ0002 : Fehler "-1073741515" wurde von "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.exe" zurückgegeben.
1>Das Buildprotokoll wurde unter "file://c:\Users\Dominic\Documents\Visual Studio 2008\Projects\winapitest\winapitest\Debug\BuildLog.htm" gespeichert.
1>winapitest - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========Edit2:
Wenn ich cl.exe in cmd öffne steht das die mspdb80.dll fehlt. Woher bekomm ich die?
-
Ha! Sehr gute Fehlerbeschreibung, sowas hab ich hier schon seit langem nicht mehr gesehen!
So wie es aussieht, unterläuft bei der Installation von MSVC++ 2008 ein Fehler, der dir die .DLL nicht mitkopiert, oder vllt. ist auch das Setup-Binary defekt oder unvollständig? Schade, dass MS keine Checksums anbietet...
Net-Install gemacht? Gibt doch bestimmt auch .ISOs (gab es zumindest bei 2005), die du saugen kannst. Probier es mal mit so einer.
Grüße, Xantus.
-
Hab gerade die .iso Datei gefunden uns lade sie jetzt mal runter.. Könnte etwas länger dauern als der Web-Install ^^".
-
Habe jetzt die .ISO Datei installiert. Hat ganz schön lange gedauert.. Habe auch schon ein WinApi-Fenster vesucht zu programmieren. Doch es kommt der gleiche Fehler.
1>------ Erstellen gestartet: Projekt: winapitest, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>Projekt : error PRJ0002 : Fehler "-1073741515" wurde von "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.exe" zurückgegeben.
1>Das Buildprotokoll wurde unter "file://c:\Users\Dominic\Documents\Visual Studio 2008\Projects\winapitest\winapitest\Debug\BuildLog.htm" gespeichert.
1>winapitest - 1 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-
Hab gelesen das ich
%userprofile%\Local Settings\Application Data\Microsoft\VCExpress\8.0\VCComponents.dat
löschen muss und neuinstallieren.
Es klappt bzw. der Fehler beseitigt. Dennoch gibt es wieder Probleme die es bei Dev-Cpp nicht gab:
1>------ Erstellen gestartet: Projekt: winapitest, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>c:\users\dominic\documents\visual studio 2008\projects\winapitest\winapitest\main.cpp(25) : error C2440: '=': 'LPCSTR' kann nicht in 'LPCWSTR' konvertiert werden
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>c:\users\dominic\documents\visual studio 2008\projects\winapitest\winapitest\main.cpp(26) : error C2440: '=': 'LPCSTR' kann nicht in 'LPCWSTR' konvertiert werden
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>c:\users\dominic\documents\visual studio 2008\projects\winapitest\winapitest\main.cpp(43) : error C2664: 'CreateWindowExW': Konvertierung des Parameters 2 von 'LPCSTR' 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://c:\Users\Dominic\Documents\Visual Studio 2008\Projects\winapitest\winapitest\Debug\BuildLog.htm" gespeichert.
1>winapitest - 3 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========Bitte um Hilfe
-
Projekteigenschaften - Allgemein - Zeichensatz -> "Nicht festgelegt" oder "Multi-Byte Zeichensatz verwenden" aktivieren
-
oder besser:
schreib deine programme in unide oder schreib sie so, dass du unicode UND multi benutzen kannst. such dafür hier nach.
-
Habe so ziemlich das gleiche Problem aber :
Projekteigenschaften - Allgemein - Zeichensatz -> "Nicht festgelegt" oder "Multi-Byte Zeichensatz verwenden" aktivieren
klappt bei mir nicht o0
bzw. danach klappt es immer noch nicht.
-
@bakoora
Hast du die Einstellungen auch für den gewünschten Modus (Debug/Release) gemacht?MfG