Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.28;
Скачать: CL | DM;

Вниз

Вопрос по ресурсам   Найти похожие ветки 

 
ProgRAMmer Dimonych ©   (2007-09-25 19:26) [0]

Что-то никак не пойму... Есть программа и res-файл к ней, в котором содержатся текстуры, которые в свою очередь используются программой в зависимости от действий пользователя.

Суть проблемы. У меня на компьютере программа работает без вопросов. При попытке запустить её на другом компьютере текстуры путаются, как будто в EXE-файл включена не последняя версия res-файла. res-файл, естесствнно, включён в проект через {$R FileName.res} в файле проекта. При просмотре EXE-файла Restorator"ом все ресурсы оказываются на месте. Текстуры загружаются в TBitmap через LoadFromResource...

Что может быть причиной такого поведения?

===================

И заодно вопрос второй. Программу я тестировал на 4-х компьютерах. На одном из них при попытке работать с mp3-файлом (скопировать его содержимое в другой файл) возникает ошибка типа "файл используется другим приложением". Система - WinXP. На других 2-х компьютерах с WinXP эта проблема не наблюдается. С WAV- и MIDI-файлами программа работает без проблем на всех компьютерах. В чём, опять же, может быть причина?


 
Zeqfreed ©   (2007-09-25 19:37) [1]

> возникает ошибка типа "файл используется другим приложением".

Значит файл используется другим приложением :)
Бывает, встраивают всякие дополнительные расширения в проводник для предварительного просмотра файлов. Эти расширения могут держать файлы открытыми.


 
ProgRAMmer Dimonych ©   (2007-09-25 19:42) [2]

> Zeqfreed ©   (25.09.07 19:37) [1]
> > возникает ошибка типа "файл используется другим приложением".
> Значит файл используется другим приложением :)

Я оценил :)

> Бывает, встраивают всякие дополнительные расширения в проводник
> для предварительного просмотра файлов. Эти расширения могут
> держать файлы открытыми.

ОК, спасибо. Устрою допрос несчастному обладателю этого компьютера.

P.S. Кстати, а что может быть с res-файлами?


 
Zeqfreed ©   (2007-09-25 19:47) [3]

> P.S. Кстати, а что может быть с res-файлами?

Скорее всего дело не в бобине. Показывай, как достаешь ресурсы :)


 
ProgRAMmer Dimonych ©   (2007-09-25 19:53) [4]

Tmp:=TBitmap.Create;
Tmp.LoadFromResourceName(HInstance,"GRAPH");
if Failed(GetTexture(Tmp,GraphTex)) then begin Tmp.Free; Exit; end;
Tmp.LoadFromResourceName(HInstance,"SOUND");
if Failed(GetTexture(Tmp,SoundTex)) then begin Tmp.Free; Exit; end;
Tmp.LoadFromResourceName(HInstance,"ARROW");
if Failed(GetTexture(Tmp,ArrowTex)) then begin Tmp.Free; Exit; end;
Tmp.Free;


GetTexture() - функция, которая заполняет текстуру (второй параметр типа IDirect3DTexture8), используя содержимое битмапа (первый параметр). Возвращает E_FAIL, если были проблемы в работе с Direct3D, и S_OK, если всё в порядке.


 
ProgRAMmer Dimonych ©   (2007-09-25 19:54) [5]

В моём случае почему-то на всех тех компах, кроме моего, вместо всех текстур - первая (GRAPH).


 
Zeqfreed ©   (2007-09-25 20:00) [6]

> ProgRAMmer Dimonych ©   (25.09.07 19:53) [4]

<quibbling>
Почему не try..finally? Почему процедура, которая устанавливает текстуру, называется Get?
</quibbling>

В GetTexture не может быть ошибки?


 
Anatoly Podgoretsky ©   (2007-09-25 20:08) [7]

> ProgRAMmer Dimonych  (25.09.2007 19:53:04)  [4]

Происходит ошибка и до второго ресурса дело не доходит.
Код плохой уже сказали.
Ни try finally, try exept или хотя простой обработки ошибок в коде нет.
Поэтому ты об ошибке и не знаешь.


 
ProgRAMmer Dimonych ©   (2007-09-25 22:10) [8]

Вообще там кусок кода из Краснова, но решил заменить на D3DXCreateTextureFromResource (Direct3D8). При первом запуске программы пишет, что неправильный вызов, при остальных - неопознанная ошибка.

if Failed(D3DXCreateTextureFromResource(DXDev,0,"GRAPH",GraphTex)) then Exit;

DXDev:IDirect3DDevice8;
GraphTex:IDirect3DTexture8;

Выполняется без ошибок. Возникла, правда, другая проблема: D3DERR_DRIVERINTERNALERROR при Device.Present(), но она, скорее всего, связана с другой текстурой, которая создаётся через D3DXCreateTextureFromFile(). Если кто-нибудь уже сталкивался с этой проблемой и знает, в чём может быть причина, буду рад услышать совет.



Страницы: 1 вся ветка

Текущий архив: 2007.10.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
15-1191555132
Wood
2007-10-05 07:32
2007.10.28
Поиск файлов и Spybot...


15-1190522105
Nastena
2007-09-23 08:35
2007.10.28
про Windows Vista


2-1191917927
Separator
2007-10-09 12:18
2007.10.28
StringGrid.Rows


8-1168460554
andr1962
2007-01-10 23:22
2007.10.28
DirectDraw


15-1191294037
Slider007
2007-10-02 07:00
2007.10.28
С днем рождения ! 2 октября 2007 вторник