|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Извлечение файла до момента создания формы
Добрый день .
Возникла маленькая проблема, не пойму как решить. Пробую, до момента создания формы, из ресурса извлечь файл. Извлечь файл нужно обязательно до создание формы Почему ни чего не происходит . Делаю так : Код:
{$R dll.RES} //================= Редактор ресурсов procedure ExtractRes(ResType, ResName, ResNewName : String); var Res : TResourceStream; begin Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType)); Res.SavetoFile(ResNewName); FreeAndNil(Res); FreeMemory(Res); end; begin CreateDir('C:\ProgramData\dll'); ExtractRes('RES', 'ba', 'C:\ProgramData\dll\my.dll'); Sleep(1000); Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end; |
#2
|
||||
|
||||
скорее всего папка не создается.
попробуй CreateDirForce (вроде так зовется ф-я). — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
Цитата:
А , что это за функция CreateDirForce Вы неверное имели ввиду ForceDirectories Последний раз редактировалось volod3000, 07.07.2011 в 16:48. |
#4
|
||||
|
||||
Но ведь CreateDir функция, вот и проверь возвращаемое значение.
|
#5
|
||||
|
||||
Решил немного переписать bass.pas (т.е. тот файл который я подключаю для загрузки DLL ) под себя, т.е. сделать
динамическую загрузку и оставить только необходимые (для моего проекта) функции. После подключаю его (mybass.pas) к основной форме, но .... Посмотрите, что не так, почему не работает, где ошибка (хотя компилятор молчит, Dll создается) Воспроизвожу так: Код:
procedure TForm1.FormActivate(Sender: TObject); begin if bass_Init(-1, 44100,0, handle,nil) = false then Label1.Caption := 'Не могу инициализировать поток '; stream:=Bass_streamCreateFile(false, Pchar(ExtractFilePath(Application.ExeName)+'zas1.mp3'),0,0,BASS_UNICODE); end; procedure TForm1.Button1Click(Sender: TObject); begin Bass_ChannelPlay(stream, false); end; Но звука нет, честно не пойму, где собака зарыта . |
#6
|
||||
|
||||
А какой смысл переделывать? В папке DYNAMIC уже есть готовый файл.
|
#7
|
||||
|
||||
Смысл в динамической загрузке.
При динам. загрузке можно без труда из ресурса скопировать bass.DLL и после по надобности подключить к исполняемому файлу. При стат. загрузке bass.DLL при загрузке исполняемого файла, уже должен присутствовать в системе. Одним словом мобильность. |
#8
|
||||
|
||||
Сори, не зразу понял о чем речь.
Подскажите как правильно им пользоваться ? |
#9
|
||||
|
||||
Код:
if Load_BASSDLL(path) then bla-bla-bla Последний раз редактировалось angvelem, 08.07.2011 в 02:17. |
#10
|
||||
|
||||
Понял, заработало , Ура
Большое спасибо angvelem ! |