[英]Windows , WinInet C++ API
我正在嘗試使用FTP從本地FTP filezilla服務器讀取一些文件。 但是我有點掙扎,這是我的代碼:
#include<Windows.h>
#include<WinInet.h>
#include<iostream>
using namespace std;
HINTERNET hOpener, hCon, hFinder;
Handle hFile;
char buffer[2000] = "\0";
WIN32_FIND_DATA findData;
hOpener = InternetOpen(TEXT("Chrome"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL);
hCon = InternetConnect(hOpener, TEXT("127.0.0.1"), INTERNET_DEFAULT_FTP_PORT, TEXT("anonymous"), TEXT("adminn"), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, NULL);
hFinder = FtpFindFirstFile(hCon, NULL, &findData, INTERNET_FLAG_RELOAD, 0);
hFile = FtpOpenFile(hOpener, findData.cFileName, GENERIC_READ, FTP_TRANSFER_TYPE_ASCII, 0);
LPDWORD x = 0;
cout << InternetReadFile(hFile, buffer, 280, x);
但是,當它應該打印1時,它會打印0(基本上有問題)。 我在這里做錯了什么?
您正在將NULL DWORD*
指針傳遞給InternetReadFile()
的lpdwNumberOfBytesRead
參數。 您需要傳遞一個指向DWORD
的指針。
更改:
LPDWORD x = 0;
InternetReadFile(..., x);
至:
DWORD x = 0;
InternetReadFile(..., &x);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.