Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2008, 15:00   #1
v01umE
Пользователь
 
Аватар для v01umE
 
Регистрация: 30.05.2008
Сообщений: 18
По умолчанию Копирование *.exe вручную

Пытаюсь скопировать файл exe вручную, без функции CopyFile()
Код:
#include <iostream>
#include <windows.h>

long SizeOfFile(FILE *file_s)
{
 long size;
 fseek(file_s,0,SEEK_END);
 size=ftell(file_s);
 fseek(file_s,0,SEEK_END);
 
 return size;
}

int WINAPI WinMain(HINSTANCE hint, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
 char name[256];
 GetModuleFileName(hint,name,256);
 FILE *f=fopen(name, "r");
 
 char read[SizeOfFile(f)];
 fread(read,SizeOfFile(f),1,f);
 
 fclose(f);
 
 FILE *fw=fopen("c:\\file.exe", "w");
 
 fwrite(read,sizeof(read),1,fw);
 
 fclose(fw);
 
 MessageBox(0, "Файл скопирован", "Результат", 0);
 
 return 0;
}
Файл "c:\file.exe" создаётся, но на 1 Кб больше стартового файла и не запускается ("C:\file.exe не является приложением Win32.") . В чём проблема и как правильно скопировать файл вручную?
v01umE вне форума Ответить с цитированием
Старый 05.07.2008, 16:32   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

FILE *f=fopen(name, "rb");
.............
FILE *fw=fopen("c:\\file.exe", "wb");
B_N вне форума Ответить с цитированием
Старый 05.07.2008, 23:27   #3
v01umE
Пользователь
 
Аватар для v01umE
 
Регистрация: 30.05.2008
Сообщений: 18
По умолчанию

Попробую. А что означает это b ?
v01umE вне форума Ответить с цитированием
Старый 05.07.2008, 23:41   #4
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

Открыть файл как бинарный.
filosof_x86 вне форума Ответить с цитированием
Старый 06.07.2008, 20:06   #5
v01umE
Пользователь
 
Аватар для v01umE
 
Регистрация: 30.05.2008
Сообщений: 18
По умолчанию

Спасибо. Всё работает.
v01umE вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование ryton SQL, базы данных 2 30.06.2008 09:32
Копирование файлов Artificial Помощь студентам 5 05.06.2008 18:42
Копирование КАТАЛОГА Рустам Общие вопросы Delphi 10 13.10.2007 12:22
сделать так, чтобы CheckBox и CheckListBox нельзя было отмечать вручную Washington Компоненты Delphi 7 24.03.2007 16:59