2012-02-03 1 views
-1

Как открыть имя файла, указанное в файле mainv argv [] (скажем, D: \ a.txt) с помощью API CreateFile?CreateFile & ReadFile

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

Я предлагаю вам не пытаться писать многоязычные исходные файлы. Выберите один из C или C++! – pmg

+0

Прошу прощения. Ууд и моя проблема сейчас? m новичок в этом, поэтому plz не замечает ошибок – Abhineet

+0

Почему бы не использовать fopen и fread вместо этого? – sashoalm

ответ

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

+0

Прошу прощения, но этого нужно будет спросить как новый вопрос, и вам нужно будет показать нам какой-то код. Это один вопрос за раз, а комментарии - для незначительных разъяснений. –

+0

Ох ... хорошо ... Я разместил его как новый вопрос с некоторыми кодировками, но я подумайте, что это беспорядочно. г. – Abhineet