![]() |
[c++] InternetFindNextFile()
Ik ben momenteel bezig met een simpele FTP client, maar zelfs dat wil niet lukken. Ipv Winsock maak ik gebruik van WinInet, een versimpeld API waarmee je toch HTTP/FTP/Gopher applicaties kan maken. Anyway, ik kan nu dus wel connecten naar mn FTP, en ook inloggen, maar nu wil ik een lijst met wat erop staat.
Code:
/************** FtpFindFirsFile()***********************/ MSDN zegt dat 997 voor Overlapped I/O operation is in progress staat. Ik heb van alles geprobeerd, maar ik blijf die error houden :( iemand enig idee wat ik fout doe |
nog nooit met die functie gewerkt, maar uhm, probeer eens van die laatste if statement,
Code:
if(!InternetFindNextFile(findFile , &win32_find_data)) eens gewoon dit te maken. Code:
DWORD dw=GetLastError(); |
Dat hij een error returned is opzich wel logisch.
De laatste call zal altijd false zijn. Je doet eerst een while en daarna weer een if met dezelfde conditie. Die is altijd false :p Voor de rest zou ik gewoon eens cout << "hello world" in de compound block van mijn while zetten om te kijken of de functie InternetFindNextFile() ueberhaupt waar wordt. |
ja maar het probleem is dus juist dat het helemaal niet false moet zijn, hij moet true geven, maar waarom ie dat neit doet weet ik niet :(
|
Citaat:
|
Citaat:
Die " findFile = FtpFindFirstFile", moet dat niet == zijn ipv = ? |
Citaat:
if(findFile), en dat werkt gewoon |
Citaat:
Nu ja, verder zie ik het probleem eigenlijk niet, sorry |
Citaat:
|
Zou het dan mss kunnen dat de true of false waarde die in de findFile wordt opgeslagen (daar in je if-statement) slechts lokaal wordt opgeslagen en dus eigenlijk terug op de vorige waarde springt nadat je uit het if-statement daar bent ?
Ik weet het niet hoor, ik ken niet zoveel van C++ |
Citaat:
Code:
int main(void) Code:
/************** FtpFindFirsFile()***********************/ |
dus als ik het goed begrijp zit er in de findFile in't begin een 0, en die wordt zoiezo overschreven door die FtpFindFirstFile ?
Wat voor waarde geeft die functie terug ? En wanneer moet dat if-statement true zijn ? Zou het mss kunnen zijn dat die InternetFindNextFile geen booleaanse waarde terug geeft ? Wat doet die functie eigenlijk juist ? |
FindFirstFile()
Citaat:
InternetFindNextFile() Citaat:
|
Goh man, ik zie het echt niet hoor.
Hier nog enkele ideetjes waar het mss aan zou kunnen liggen maar hoogst waarschijnlijk ben je er niets mee hoor. 1. Citaat:
2. Ik vind die uitleg over die InternetFindNextFile nogal vaag. Zou het mss kunnen dat ie false moet zijn opdat jouw while-lus in werking zou treden, en false als ie eruit springt ? Wsl zal het dat ook niet zijn, maar je weet maar nooit ! 3. Probeer anders eens je FindFirstFile(parameters) rechtstreeks in je InternetFindNExtFile(<hier dus>, parameters) te zetten. Het zou echt wel sterk zijn mochten één van deze dingen het probleem oplossen, maar je kan maar proberen eh, misschien heb je wel geluk |
Geef ipv "*\0" gewoon eens null als parameter mee bij de findfirst.
|
Citaat:
|
http://www.easysea.com/diannao/prog/c/bcbu/025.htm
Geef je in je connection functie ook hard mee dat het om een FTP verbinding gaat? Dus, eerst: FINet = InternetOpen("WININET1", 0, NULL, 0, 0); Daarna: FFtpHandle = InternetConnect(FINet, FServer, 0, FUserID, FPassword, INTERNET_SERVICE_FTP, 0, 255); Anders weet de InternetFindNextFile() namelijk niet of het om een FTP of Gopher request gaat. |
Citaat:
http://rafb.net/paste/results/sJG11956.html |
Alle tijden zijn GMT +1. Het is nu 12:46. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.