Тема: Робота з Windows API
У програмі 1.2 вирішується завдання копіювання файлів за допомогою Windows API,
Програма 1.2. cpW: копіювання файлів з використанням Windows
/* Глава 1. Базовая программа копирования файлов cp.
Реализация, использующая Windows. */
/* cpW файл1 файл2: Копировать файл1 в файл2. */
#include <windows.h>
#include <stdio.h>
#define BUF_SIZE 256
int main (int argc, LPTSTR argv [])
{
HANDLE hIn, hOut;
DWORD nIn, nOut;
CHAR Buffer [BUF_SIZE];
if (argc != 3) {
printf ("Использование: cpW файл1 файл2\n");
return 1;
}
hIn = CreateFile (argv [1], GENERIC_READ, 0, NULL,
OPEN_EXISTING, 0, NULL);
if (hIn == INVALID_HANDLE_VALUE) {
printf ("Невозможно открыть входной файл. Ошибка: %x\n",
GetLastError ());
return 2;
}
hOut = CreateFile (argv [2], GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hOut == INVALID_HANDLE_VALUE) {
printf ("Невозможно открыть выходной файл. Ошибка: %x\n",
GetLastError ());
return 3;
}
while (ReadFile (hIn, Buffer, BUF_SIZE, &nIn, NULL) && nIn > 0) {
WriteFile (hOut, Buffer, nIn, &nOut, NULL);
if (nIn != nOut) {
printf ("Неустранимая ошибка записи: %x\n", GetLastError ());
return 4;
}
}
CloseHandle (hIn);
CloseHandle (hOut);
return 0;
}
Для того щоб виконати це завдання я створив проект Windows Desktop Wizard(Win32) з іменем "cpW" і закинув в нього даний код. Він успішно компілюється. Потім я створив в папці проекту(там де exe файл) два текстових файли - File1.txt і File2.txt і записав у них різний текст. Потім я зайшов в командний рядок і перейшов в папку проекта із exe файлом(застосунком), ввів команду cpW.exe File1.txt File2.txt і замість того щоб копіювати мої файли мені вивело що неможливо відкрити вхідний файл. Підкажіть будь-ласка у чому проблема. Як мені запустити мою програму з командного рядка?? Можливо я неправильно ввів аргументи або неправильно задав кодіровку моїх txt файлів(там за замовчуванням кажись UTF-8).