Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
7:05:2008, 03:38
|
|
Новенький ![]() Группа: Программист Сообщений: 19 Регистрация: 26:04:2008 Пользователь №: 16 904 Специализация: c++ developer Репутация: 0
|
Народ, как мне полностью скопировать файл (true color bmp в моем случае) использую MS VS 2005. Из того, что приходить в голову, это считывание по 1 байту информации и запись в другой файл, и так до EOF. Наверное и так будет работать, но нет ли уже готового варианта?
Зарание благодарен. |
|
Сообщение
#1
|
|
![]() |
|
|
7:05:2008, 07:04
|
|
Новенький ![]() Группа: Программист Сообщений: 62 Регистрация: 28:06:2006 Пользователь №: 5 086 Специализация: программист С++ Репутация: 2
|
Есть Windows API функция
Код CopyFile(LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, BOOL bFailIfExists); Как использовать должно быть понятно из её описания. |
|
Сообщение
#2
|
|
|
|
8:05:2008, 12:29
|
|
Новенький ![]() Группа: Программист Сообщений: 19 Регистрация: 26:04:2008 Пользователь №: 16 904 Специализация: c++ developer Репутация: 0
|
Написал вот так:
Код LPCWSTR aa = L"in.bmp"; LPCWSTR bb = L"out.bmp"; BOOL t=true; CopyFile(aa,bb,t); Но не могу понять, как преобразовать char* c именем файла в LPCWSTR. Тоесть мне нужно путь к файлу описать динамически, в процессе работы, а не на этапе компиляции. Куда копать? Сообщение отредактировал coin - 8:05:2008, 12:35 |
|
Сообщение
#3
|
|
|
|
8:05:2008, 12:51
|
|
Новенький ![]() Группа: Программист Сообщений: 57 Регистрация: 27:12:2007 Пользователь №: 14 492 Специализация: Программист Visual C++ Репутация: 0
|
на самом деле все проще
Код const wchar_t* pszFile1=L"in.bmp"; const wchar_t* pszFile2=L"out.bmp"; CopyFile(pszFile1,pszFile2,1); Сообщение отредактировал Dimmuborgir - 8:05:2008, 13:00 |
|
Сообщение
#4
|
|
|
|
9:05:2008, 09:36
|
|
Новенький ![]() Группа: Программист Сообщений: 19 Регистрация: 26:04:2008 Пользователь №: 16 904 Специализация: c++ developer Репутация: 0
|
А разницы? мне нужно имена и пути получить в процессе работы программы, приведенное выше отличается реализацией, а не смыслом
|
|
Сообщение
#5
|
|
|
|
9:05:2008, 11:59
|
|
Новенький ![]() Группа: Программист Сообщений: 19 Регистрация: 26:04:2008 Пользователь №: 16 904 Специализация: c++ developer Репутация: 0
|
Кстати, еще вопрос, как получить размер файл (текстового) ?
|
|
Сообщение
#6
|
|
|
|
9:05:2008, 12:15
|
|
Гуру ![]() ![]() ![]() Группа: Достойный программист Сообщений: 315 Регистрация: 3:11:2007 Пользователь №: 13 517 Репутация: 1
|
GetFileSize
|
|
Сообщение
#7
|
|
|
|
12:05:2008, 16:32
|
|
Новенький ![]() Группа: Программист Сообщений: 19 Регистрация: 26:04:2008 Пользователь №: 16 904 Специализация: c++ developer Репутация: 0
|
Все еще актуально
|
|
Сообщение
#8
|
|
|
|
12:05:2008, 20:29
|
|
Продвинутый ![]() ![]() Группа: Программист Сообщений: 134 Регистрация: 27:02:2004 Пользователь №: 296 Репутация: 6
|
|
|
Сообщение
#9
|
|
|
|
14:05:2008, 14:25
|
|
Новенький ![]() Группа: Программист Сообщений: 19 Регистрация: 26:04:2008 Пользователь №: 16 904 Специализация: c++ developer Репутация: 0
|
Повис собственно воопрос, как LPCWSTR получиться в процессе работы. что то вроде LPCWSTR t = abc; где abc - *char.
|
|
Сообщение
#10
|
|
|
|
14:05:2008, 19:21
|
|
Продвинутый ![]() ![]() Группа: Программист Сообщений: 137 Регистрация: 26:08:2007 Из: Харьков Пользователь №: 12 480 Специализация: С/C++ Репутация: 2
|
тогда abc должно быть wchar_t *. Можно вместо CopyFile использовать CopyFileA, тогда параметры будут иметь тип char *.
|
|
Сообщение
#11
|
|
|
|
15:05:2008, 12:17
|
|
Новенький ![]() Группа: Программист Сообщений: 19 Регистрация: 26:04:2008 Пользователь №: 16 904 Специализация: c++ developer Репутация: 0
|
shisik большой респект
Тогда еще вопрос, где можно почитать про такие вот апишные (мфцшые) функции работы с файлами, а так же таки узнать, ктож такие wchar_t и LPCWSTR? |
|
Сообщение
#12
|
|
|
|
15:05:2008, 14:28
|
|
Продвинутый ![]() ![]() Группа: Программист Сообщений: 137 Регистрация: 26:08:2007 Из: Харьков Пользователь №: 12 480 Специализация: С/C++ Репутация: 2
|
Про АПИшные функции можно почитать в MSDN http://msdn.microsoft.com/ru-ru/library/default.aspx
Что касается wchar_t и LPCWSTR - это соответственно юникод-символ и указатель на юникод-строку (typedef wchar_t * LPCWSTR; ). От ANSI-строки (char*) она отличается тем, что содержит 2-байтные символы. |
|
Сообщение
#13
|
|
|
|
16:05:2008, 11:04
|
|
Новенький ![]() Группа: Программист Сообщений: 19 Регистрация: 26:04:2008 Пользователь №: 16 904 Специализация: c++ developer Репутация: 0
|
Вопросов больше нет, всем спасибо
|
|
Сообщение
#14
|
|
![]() |
|
Текстовая версия | Сейчас: 6:07:2008 - 00:47 |