Benutzer mit den meisten Antworten
POST Konsolenanwendung nach kb 167658

Frage
-
Ich evrsuche grade, http://support.microsoft.com/kb/167658/en-us/ nachzuarbeiten/nachzuvollziehen.
Habe nun wie in der Anleitung beschrieben, den code kopiert und in ein Konsolenprojekt eingefügt, dabei kommt es zu folgenden Compilerfehlern:
Fehler 5 error C2039: 'Navigate': Ist kein Element von 'IWebBrowserApp' post.c 50
Fehler 6 error C2039: 'put_Visible': Ist kein Element von 'IWebBrowserApp' post.c 52
Fehler 7 error C2039: 'Release': Ist kein Element von 'IWebBrowserApp' post.c 58
Fehler 1 error C2440: 'Funktion': 'const CLSID' kann nicht in 'const IID *const ' konvertiert werden post.c 28
Fehler 3 error C2440: 'Funktion': 'const IID' kann nicht in 'const IID *const ' konvertiert werden post.c 28
Fehler 9 fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer "{" in "post.c(64)" gefunden wurde post.c 89
woran liegt das? danke- Bearbeitet Robert Breitenhofer Dienstag, 22. Dezember 2009 13:54 Hyperlink als Hyperlink
Antworten
-
Ändere diese Zeile:
LPCTSTR cszPostData = "FName=Matt&Flavor=Mocha+Chip"; UINT cElems = lstrlen(cszPostData);
nach
LPCSTR cszPostData = "FName=Matt&Flavor=Mocha+Chip"; UINT cElems = lstrlenA(cszPostData);
- Als Antwort vorgeschlagen Jochen Kalmbach Mittwoch, 23. Dezember 2009 13:53
- Als Antwort markiert Robert Breitenhofer Sonntag, 27. Dezember 2009 15:35
Alle Antworten
-
Also bei mir lässt sich der Code problemlos kompilieren... WAS hast Du denn gemacht?
File..New...|C/C++|Win32 Console Application
Und das ist der Code:
#include <windows.h> #define INITGUID #include <initguid.h> #include <exdisp.h> #include <memory.h> HRESULT GetPostData(LPVARIANT pvPostData); void main() { HRESULT hr; IWebBrowserApp* pWBApp = NULL; // Derived from IWebBrowser BSTR bstrURL = NULL, bstrHeaders = NULL; VARIANT vFlags = {0}, vTargetFrameName = {0}, vPostData = {0}, vHeaders = {0}; if (FAILED(hr = CoInitialize(NULL))) { return; } if (FAILED(hr = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_SERVER, IID_IWebBrowserApp, (LPVOID*)&pWBApp))) { goto Error; } bstrURL = SysAllocString(L"http://<server>/scripts/navpost.asp"); if (!bstrURL) { goto Error; } bstrHeaders = SysAllocString( L"Content-Type: application/x-www-form-urlencoded\r\n"); if (!bstrHeaders) { goto Error; } V_VT(&vHeaders) = VT_BSTR; V_BSTR(&vHeaders) = bstrHeaders; hr = GetPostData(&vPostData); hr = pWBApp->Navigate(bstrURL, &vFlags, &vTargetFrameName, &vPostData, &vHeaders); pWBApp->put_Visible(VARIANT_TRUE); Error: if (bstrURL) SysFreeString(bstrURL); if (bstrHeaders) SysFreeString(bstrHeaders); VariantClear(&vPostData); if (pWBApp) pWBApp->Release(); CoUninitialize(); } // Pack some data into a SAFEARRAY of BYTEs. Return in a VARIANT HRESULT GetPostData(LPVARIANT pvPostData) { HRESULT hr; LPSAFEARRAY psa; LPCSTR cszPostData = "FName=Matt&Flavor=Mocha+Chip"; UINT cElems = lstrlenA(cszPostData); LPSTR pPostData; if (!pvPostData) { return E_POINTER; } VariantInit(pvPostData); psa = SafeArrayCreateVector(VT_UI1, 0, cElems); if (!psa) { return E_OUTOFMEMORY; } hr = SafeArrayAccessData(psa, (LPVOID*)&pPostData); memcpy(pPostData, cszPostData, cElems); hr = SafeArrayUnaccessData(psa); V_VT(pvPostData) = VT_ARRAY | VT_UI1; V_ARRAY(pvPostData) = psa; return NOERROR; }
Jochen Kalmbach (MVP VC++)- Bearbeitet Jochen Kalmbach Sonntag, 27. Dezember 2009 17:36 Bugfix
-
neues win32 konsolenprojekt, quelldateien, c++-datei hinzufügen (POST.cpp)
interessanter weise im 2. Anlauf nur noch 1 compilerfehler:
Fehler 1 error C2440: 'Initialisierung': 'const char [29]' kann nicht in 'LPCTSTR' konvertiert werden post.cpp 67 -
Ändere diese Zeile:
LPCTSTR cszPostData = "FName=Matt&Flavor=Mocha+Chip"; UINT cElems = lstrlen(cszPostData);
nach
LPCSTR cszPostData = "FName=Matt&Flavor=Mocha+Chip"; UINT cElems = lstrlenA(cszPostData);
- Als Antwort vorgeschlagen Jochen Kalmbach Mittwoch, 23. Dezember 2009 13:53
- Als Antwort markiert Robert Breitenhofer Sonntag, 27. Dezember 2009 15:35