Не копируется файл с помощью функции CopyFile
Хочу чтобы мой .exe файл копировал сам себя в определенное место. Я использую функцию CopyFile, но она почему-то не работает. Я думал что проблема в том что .exe файл не может копировать себя-же. Но я пробовал с обычными .txt файлами и ничего не получается. Все пути полученные в ходе программы я проверял, они действительные.
#define _CRT_SECURE_NO_WARNINGS
#define DEBUG
#include<iostream>
#include<string>
#include<filesystem>
#include<fstream>
#include<Windows.h>
#include<MMSystem.h>
#include<stdio.h>
#include<direct.h>
#include<conio.h>
void main()
{
char ThatExe[MAX_PATH] = "";
wchar_t buffer[MAX_PATH];
GetModuleFileName(NULL, buffer, MAX_PATH);
strcat(ThatExe, "C:\\1\\hi.exe");
int a = CopyFile((LPWSTR)buffer, (LPWSTR)ThatExe, true);
if (a) std::cout << "file copy" << std::endl;
else std::cout << "file not copy" << std::endl;
}
Ответы (1 шт):
Автор решения: maint
→ Ссылка
wchar_t ThatExe[MAX_PATH];
wchar_t buffer[MAX_PATH];
GetModuleFileName(NULL, buffer, MAX_PATH);
wcscpy(ThatExe, L"C:\\\\1\\\\hi.exe");
int a = CopyFile((LPWSTR)buffer, (LPWSTR)ThatExe, true);
if (a) std::cout << "file copy" << std::endl;
else {
std::cout << "file not copy" << GetLastError() << std::endl;
}