2012-02-03 67 views
-1

如何通過CreateFile API在Main的argv [](比如D:\ a.txt)中打開一個文件名?CreateFile&ReadFile

CreateFile(ReadBuffer, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 
           FILE_ATTRIBUTE_NORMAL, NULL); 
+0

我建議你不要試圖編寫多語言源文件。選擇C或C++之一! – pmg 2012-02-03 09:45:12

+0

我道歉。你現在用武力解決我的問題嗎?新的這個,所以plz忽略了一些錯誤 – Abhineet 2012-02-03 09:50:52

+0

爲什麼不使用fopen和fread呢? – sashoalm 2012-02-03 10:01:04

回答

0

在我看來,你的問題很簡單,就是你試圖調用一個函數像這樣

Connect(char *filename) 
{ 
    HANDLE hFile = CreateFile(filename, ...); 
    .... 
} 

,不知道如何獲得的第一個命令行參數的保持。像這樣做:

int main(int argc, char *argv[]) 
{ 
    if (argc != 2) 
    { 
     printf("Incorrect number of arguments supplied\n.") 
     return 1; 
    } 
    Connect(argv[1]); 
    ..... 
    return 0; 
} 

注意argv是包含argc項目,其中每個項目是char*類型的數組。所以你只需要索引1處的項目。索引0處的項目是進程名稱。

+0

如果文件名包含一個URL列表,我如何逐行讀取文件,因爲如果我使用while循環讀取直到遇到回車符,我必須將所有InternetCrackUrl,InternetConnect,HttpOpenRequest,HttpSendRequest,HttpQueryInfo,所有這些都在while循環中。有沒有更好的方法來使用「while」循環來完成,直到回車邏輯只有。 – Abhineet 2012-02-03 13:09:22

+0

對不起,但需要問一下作爲一個新的問題,你需要向我們展示一些代碼,一次只能有一個問題,並且需要小的澄清的意見 – 2012-02-03 13:13:27

+0

哦......好的......我已經把它作爲一個帶有一些編碼的新問題發佈,但是我想想它的混亂。反正看看pl ž。 – Abhineet 2012-02-03 13:15:27