Подскажите где ошибка с копированием файла?

 
Нашел на форуме таекую подсказку:
Slawa 21.04.05 12:23

импортируйте Kernel32.dll, опишите функцию
bool CopyFileA(string source_file, string destination_file, bool if_exist);
и используйте её

и в тестовый индикатор сделал такую вставку:

#include <stdlib.mqh>
#import "Kernel32.dll"
bool CopyFileA (string source_file, string destination_file, bool if_exist);
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
int res=CopyFileA("G:\tst\111", "G:\tst\222", 0);
if (res==0)
{
int err=GetLastError();
string errS=ErrorDescription(err);
Print("err= " + err +" errS= " + errS);
}
else
{
Print("===",res);
}


В пути специально использовал диск с FAT чтоб избежаоть накладок с правами доступа.
Но всеравно CopyFileA возвращает 0 и ничего не копирует.
Штатный GetLastError(); здесь наверно ничего не дает,
но как выдернуть GetLastError() из Kernel32.dll я не придумал.
Может кто-то рашал эту задачу с копированием?
 
Штатный GetLastError(); здесь наверно ничего не дает,
но как выдернуть GetLastError() из Kernel32.dll я не придумал.

да, получается коллизия с именами функций. после вызовов dll-функций будем заполнять last_error значением, полученным из системной (kernel32.dll) функции GetLastError
 
Может нужно использовать не CopyFileA("G:\tst\111", "G:\tst\222", 0), а CopyFileA("G:\\tst\\111", "G:\\tst\\222", 0) ?
 
Может нужно использовать не CopyFileA("G:\tst\111", "G:\tst\222", 0), а CopyFileA("G:\\tst\\111", "G:\\tst\\222", 0) ?

кстати, да. '\t' преобразуется к символу табуляции
 
Может нужно использовать не CopyFileA("G:\tst\111", "G:\tst\222", 0), а CopyFileA("G:\\tst\\111", "G:\\tst\\222", 0) ?

кстати, да. '\t' преобразуется к символу табуляции

И таки ДА!
После исправления все пошло.
Спасибо за подсказку :)