Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

WinHTTP w C++


Rekomendowane odpowiedzi

Opublikowano

Cześć,

 

dotychczas WinHTTP używałem w AutoIt, ale teraz chciałbym przejść na C++. I tu pojawiają się problemy, otóż przy próbie kompilacji najprostrzego programu:

 

 

#include <windows.h>
#pragma comment(lib, "winhttp.lib")
#include <winhttp.h>

using namespace std;

int main(){


return 0;
}

 

 

otrzymuję wiele błędów:

 

 

d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|299|error: definition of 'BOOL WinHttpTimeFromSystemTime' is marked 'dllimport'|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|299|error: '__in' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|300|error: '__out_bcount' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|301|error: expression list treated as compound expression in initializer [-fpermissive]|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|306|error: definition of 'BOOL WinHttpTimeToSystemTime' is marked 'dllimport'|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|306|error: '__in_z' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|307|error: '__out' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|308|error: expression list treated as compound expression in initializer [-fpermissive]|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|328|error: definition of 'BOOL WinHttpCrackUrl' is marked 'dllimport'|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|328|error: 'dwUrlLength' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|328|error: '__in_ecount' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|329|error: '__in' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|330|error: '__in' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|331|error: '__inout' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|332|error: expression list treated as compound expression in initializer [-fpermissive]|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|337|error: definition of 'BOOL WinHttpCreateUrl' is marked 'dllimport'|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|337|error: '__in' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|338|error: '__in' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|339|error: 'pdwUrlLength' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|339|error: 'pdwUrlLength' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|339|error: '__out_ecount_part_opt' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|340|error: '__inout' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|341|error: expression list treated as compound expression in initializer [-fpermissive]|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|363|error: definition of 'void* WinHttpOpen' is marked 'dllimport'|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|363|error: '__in_z_opt' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|364|error: '__in' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|365|error: '__in_z_opt' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|366|error: '__in_z_opt' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|367|error: '__in' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|368|error: expression list treated as compound expression in initializer [-fpermissive]|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|402|error: '__out_bcount_part' has not been declared|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|402|error: expected ')' before ',' token|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|402|error: expected ')' before ',' token|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|402|error: expected initializer before ')' token|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|411|error: '__in_bcount_opt' has not been declared|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|411|error: expected ',' or '...' before 'LPCVOID'|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|421|error: '__out_data_source' has not been declared|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|421|error: expected ',' or '...' before 'LPDWORD'|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|425|error: expected constructor, destructor, or type conversion before '(' token|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|442|error: '__in_awcount' has not been declared|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|442|error: expected ')' before '!=' token|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|442|error: expected ')' before '!=' token|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|442|error: expected ')' before '!=' token|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|442|error: expected initializer before '!=' token|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|467|error: definition of 'DWORD WinHttpIsHostInProxyBypassList' is marked 'dllimport'|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|467|error: '__in' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|468|error: '__in_z' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|469|error: '__in' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|470|error: '__in' was not declared in this scope|
d:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\winhttp.h|471|error: '__out' was not declared in this scope|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build failed: 50 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

 

Bibliotekę winhttp.lib dodałem do kompilatora.

 

I teraz pytanie, czy w C++ używa się WinHTTP, czy może jest przeznaczony do C/C#?

Jeżeli odpowiedź na pierwsze pytanie brzmi nie, to może jakiś zamiennik np. WinINet?

Ewentualnie prosiłbym o jakieś nakierowanie jaki język z jakim API najlepiej używać.

Opublikowano
    I teraz pytanie, czy w C++ używa się WinHTTP

 

 

TAK.

 

Sprobuj Winhttp.h zamiast winhttp.h

 

P.S do zapytan HTTP, FTP itd polecam curla. Bardzo przyjemna biblioteka :)

Opublikowano

Winhttp.h było złe, mimo, że pobrałem to w SDK to nie chciało działać, po pobraniu z innego źródła wszystko jest w porządku.

Opublikowano

Pewnie nie korzystałeś z kompilatora Micro$oftu? W takim razie to nie miało prawa się skompilować bo w nagłówkach z SDK masz dodatki do deklaracji funkcji takie jak np: '__out', '__in' itd... a zwykły kompilator sobie z tym nie poradzi :).

 

Przynajmniej teraz znasz przyczynę swojego problemu.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...