Problem mit WinApi und URLDownloadToFile
-
Hallo,
Ich habe ein Problem unter Visual C++ 2010 Express Edition. Folgendermaßen bin ich vorgegangen. Win32-Projekt erstellt>Multibyte Zeichensatz eingestellt>In stdafx.h habe ich folgendes geschrieben
#include <fstream>
#include <WinInet.h>
#include <iostream>
#pragma comment(lib, "urlmon.lib")
using namespace std;Außerdem habe ich die Library User32.lib dem Linker gegeben. Nun möchte ich einen Download über einen Button durchführen und füge also folgenden Code meiner Projektcppdatei hinzu:
HRESULT GetURL = URLDownloadToFile ( NULL, _T("http://www.server.de/download.exe"), _T("C:\\temp\\download.exe"), 0, NULL );Was in anderen Projekten tadellos funktioniert hat, jedoch ist in meinem ersten Win32 Projekt (mit vorkompilierten Headern) mit der WinApi der Wurm drin und bekomme so immer beim Kompiliervorgang die Meldung error C3861: "URLDownloadToFile": Bezeichner wurde nicht gefunden. Die Bibliothek fstream wird ohne Murren erkannt.
Ich danke schonmal für Antworten.
-
http://msdn.microsoft.com/en-us/library/ms775123
MSDN schrieb:
Header Urlmon.h
Misc tips for the not-so-developed brain:
Dont link User32.lib manually
Dont use precompiled headers
Dont begin variable names with an uppercase letter
Dont use _T() if you dont care about character set at all
-
Was spricht gegen precompilierte Header? Was mach ich zb., wenn ich eine Menuleiste haben will (Datei,Info, Beenden, usw.)? Hierfür brauch ich doch beispielsweise eine Resourcendatei, oder kann ich mir die auch selber erstellen? Habe sonst immer direkt mit einem leeren Projekt gestartet, um GUIs mit der WinAPI zu programmieren. Ich hätte noch eine Frage: Wenn ich einen Label mit label = CreateWindow("static", "LABEL", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10,170,250,20,hWnd, NULL,(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE), NULL); erstelle, ist um diesen ein grauer hässlicher Rand, gleiches passiert mit Checkboxen. Der Rand erstrekt sich solang, wie __in int nWidth groß ist. Wie bekomm ich diesen Rand weg?
-
In Arnold Willemer's "Einstieg in C++" steht leider nichts über die WinApi und ich bin auf diesem Gebiet blutiger Neueinsteiger.
-
EinHilfesuchenderUser schrieb:
Was spricht gegen precompilierte Header?
Gar nichts, sie nicht zu nutzen ist eine Zumutung (zumindest bei größeren Projekten).
EinHilfesuchenderUser schrieb:
Was mach ich zb., wenn ich eine Menuleiste haben will (Datei,Info, Beenden, usw.)? Hierfür brauch ich doch beispielsweise eine Resourcendatei, oder kann ich mir die auch selber erstellen?
In den Expressversionen von MSVS ist der Resourceneditor leider nicht integriert, du müsstest dir einen per google suchen (diesbezüglich kann ich dir aber keinen Tipp geben).
Oder eben der harte Weg über CreateMenu, InsertMenuItem, InsertMenu, AppendMenu etc.. Es geht auch hartcodiert, was aber alles andere als zu empfehlen ist.EinHilfesuchenderUser schrieb:
Habe sonst immer direkt mit einem leeren Projekt gestartet, um GUIs mit der WinAPI zu programmieren. Ich hätte noch eine Frage: Wenn ich einen Label mit label = CreateWindow("static", "LABEL", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 10,170,250,20,hWnd, NULL,(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE), NULL); erstelle, ist um diesen ein grauer hässlicher Rand, gleiches passiert mit Checkboxen. Der Rand erstrekt sich solang, wie __in int nWidth groß ist. Wie bekomm ich diesen Rand weg?
Das kann ich leider nicht nachvollziehen, du meinst nicht den gestrichelten Rand, wenn das Control den Fokus hat, oder?
EinHilfesuchenderUser schrieb:
In Arnold Willemer's "Einstieg in C++" steht leider nichts über die WinApi und ich bin auf diesem Gebiet blutiger Neueinsteiger.
Wenn du dich etwas näher mit der WinAPI auseinandersetzen möchtest, kann ich den Klassiker von Petzold empfehlen (über amazon gab es den gebraucht auch schon für schlappe 10 €).
Und urlmon.h hast du mittlerweile inkludiert, oder?
-
Das kann ich leider nicht nachvollziehen, du meinst nicht den gestrichelten Rand, wenn das Control den Fokus hat, oder?
Habe mal einen Screenshot von einem Programm gemacht, wo diese Symptome auftreten:
http://imageshack.us/photo/my-images/64/guiproblem.jpg/Wenn du dich etwas näher mit der WinAPI auseinandersetzen möchtest, kann ich den Klassiker von Petzold empfehlen (über amazon gab es den gebraucht auch schon für schlappe 10 €).
Vielen Dank für die Buchempfehlung. Habe bereits nach einigen Tagen bei Amazon zu diesem Thema gesucht und nicht recht was gefunden. Dieses Buch gefällt mir jedoch von der Beschreibung her.
Und urlmon.h hast du mittlerweile inkludiert, oder?
Ja, habe ich inkludiert. Nun läuft das Programm auch wieder rund.