| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > запись на CD |
| Автор: Демидрол 31.10.2008, 18:10 |
| Доброго всем времени суток,возникла следующая проблема: мне нужно записать на CD информацию при помощи стандартных функций виндовса. На форме нашел исходники,но билдер на них жутко ругаецца и топчет ногами на типы вроде CString код брал тут: http://forum.vingrad.ru/forum/topic-95309/hl/imapi/index.html Помогите,пожалуйста, и не отсылайте в погуглиться - искал, инфы много, но исходников почти нет. |
| Автор: Демидрол 10.11.2008, 12:10 |
| Вот нашел ещё:есть функции из пакета ICDBurn, с помощью которого запись на диск производится легко и непринужденно.Для тех, кто в этом разбирается.Нашел, что для записи файлов на CD используется каталог Staging area. Узнать его можно с помощью функции SHGetSpecialFolderPath, передав ей флаг CSIDL_CDBURN_AREA. Но у этой функции никак не разберусь с параметрами. Затем в этот каталог нужно скопировать нужные данные.Простите за такой вопрос,но я только разбираюсь в С++ и не очень представляю, как это сделать. Потом создаем объект типа ICDBurn и вызываем для него метод Burn, с параметрами которого мне тоже непонятно что к чему. Разъясните, пожалуйста, что к чему. |
| Автор: xvr 10.11.2008, 12:21 | ||
Читать http://msdn.microsoft.com/en-us/library/bb776155(VS.85).aspx |
| Автор: Демидрол 10.11.2008, 13:08 | ||||
Например, пишу:
И при выполнении программы выдает ошибку http://pic.ipicture.ru/uploads/081110/MYCNJ4VWVS.jpg Не мог бы кто-нбудь объяснить,чего я делаю не так? Понял, в чем косяк - надо проинстанцировать объект. Инстанцирую:
но он не инстанцируется.Не знаю почему. |
| Автор: Демидрол 10.11.2008, 15:33 | ||
| Разобрался, почему не инстанцируется - попались при рождении руки-крюки =) Но возникла следующая проблема:
При исполнеинии строки pICDBurn->Burn(0); возникает ошибка, причина которой для меня остается загадкой. |
| Автор: Демидрол 10.11.2008, 16:50 | ||
| Косяк опять из-за рук =) меняем местами строчки
и... ВУАЛЯ!!!!!!Работает!!! Спасибо себе за помощь. P.S. помогит пожалуйста голову не ломать и помогите примером, как копировать из директории в директорию. ПОЖАЛУЙСТА!!! |
| Автор: xvr 10.11.2008, 21:00 | ||||
|
| Автор: mrbrooks 10.11.2008, 22:05 |
| А может еще есть смысл покурить SDK на тот же Nero - это все есть на его офф. сайте. |
| Автор: SVN74 10.11.2008, 22:18 |
| Автор: Демидрол 13.11.2008, 16:19 |
| Всем спасибо большое за оказанную помощь, Тему закрываю. |
| Автор: Демидрол 27.11.2008, 16:47 | ||
ммм....народ,проблема дальше:диалог вызывается, все пучком, но почему-то диск пустой в сидюшнике не видится, пишет, что диска в сидроме нема...может,кто сталкивался, поможет...
а,ещё такой вопрос: в строке HRESULT hr = pICDBurn->GetRecorderDriveLetter(buf1,2); мы находим букву сидирома и записываем путь в buf1. А как перевести потом wchar_t *buf1 в, например, AnsiString DiscName ??? |
| Автор: xvr 27.11.2008, 19:36 | ||||||||||||||
Смотрим в MSDN
|
| Автор: Демидрол 27.11.2008, 23:10 |
| xvr, спасибо за помощь!!!Твои ответы мне всегда помогают!!Спасибо ОГРОМНОЕ!!! ещё такой вопрос: значения из buf1 я получил, только это числа, в ASCII коде соответствующие символам, с помощью которых название диска мне непонятно. А как же тогда извлечь нужную букву диска??? |
| Автор: Демидрол 15.12.2008, 12:16 |
| Ау...никто не знает, как решить проблему с возвращаемым значением функции GetRecorderDriveLetter? |
| Автор: xvr 15.12.2008, 17:31 | ||||
Не понял, что за проблема.
|
| Автор: Демидрол 18.12.2008, 12:40 |
| xvr, спасибо большое,помогло.Только следующая проблема - он ссылается на диск С а как исправить эту проблему?Как сделать так, чтобы функция GetRecorderDriveLetter yf[jlbkf cd-ром, а не жесткий диск? |
| Автор: xvr 18.12.2008, 12:53 | ||||
Проверь код возврата из самогго метода GetRecorderDriveLetter, может он не смог
|
| Автор: xvr 18.12.2008, 13:25 | ||||||
Вызов метода сломался. Что он там вернул - уже неважно
|
| Автор: Демидрол 18.12.2008, 13:34 | ||
и что делать, чтобы его починить?
делаю примерно так-же: Мой компьютер -> (Правая кн мыши) -> Свойства -> оборудование-> диспетчер устройств -> DVD и CD ROM дисководы -> <мой диск> -> свойства -> ??? А где устанавливать свойство Enable cd writing on this drive??? непонятно.... |
| Автор: xvr 18.12.2008, 23:36 | ||||||
Увы, не знаю.
|
| Автор: Демидрол 19.12.2008, 16:15 | ||||
не нашёл вклдаки <Запись> ни при нажатии правой клавишей на диске, ни в его свойствах... Может, нужно использовать cd-r, а не cd-rw? Добавлено через 1 минуту и 5 секунд
не нашёл вклдаки <Запись> ни при нажатии правой клавишей на диске, ни в его свойствах... Может, нужно использовать cd-r, а не cd-rw? |
| Автор: xvr 19.12.2008, 22:31 | ||||
А сама XP на него пишет? (Не через Nero, а напрямую) |
| Автор: Демидрол 20.12.2008, 10:41 |
| не,не пишет, пишет, что нет доступа к диску, какая-то неверная функция =) |
| Автор: Демидрол 13.1.2009, 16:27 |
| ЭЙ!!!Гуру программирования!!!Помогите, плиз!!!!Может, записывать на диск можно как-нибудь другим способом? Можно примеры???? Помогите, пожалуйста, никак не справлюсь с этим... |
| Автор: Sharkfire 17.1.2009, 16:39 |
| Демидрол, XP не пишет а ты хочешь чт бы твой писал? ты шо прикалываешься? тем более ты пользуешься стандартными экспишными фукнциями. Ищи альтернативы либо меняй сидюк |
| Автор: Демидрол 19.1.2009, 12:05 |
| Sharkfire, дело в том, что дома у меня стоит ХР от Зверя - она чотко при вставлеии болванки отписывается, что может на него записать чего хочешь.А на работе стоит ХР такая, что....мммм....руки пообрывать, кто её делал...Вот.Я бы с радость. переставил её, но контора решает, а не я))))Поэтому и не знаю, как справиться с проблемой. |