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

Вниз

Не могу сохранить ресурс в файл   Найти похожие ветки 

 
Reyst   (2001-12-16 15:56) [0]

Уважаемые мастера! Пишу на C++, но понадобилось написать программу на Delphi.
В нижеприведенном коде при выполнении "игнорируются" две строки,
помеченные !!!, несмотря на то, что код для них генерируется
(в браузере кода строки отмечены синей точкой, оптимизация отключена).
Вопрос: почему? Подозреваю, что собака зарыта в StrCat,
т.к. не до конца разобрался со строками в Паскале,
несмотря на явное родство PChar с "сишными" строками.
(FullPath - глобальная переменная, PChar)

function DoResource(Instance: HModule; ResType: PChar;
ResName: PChar; Param: Longint): BOOL; stdcall;
var
Res: TResourceStream;
FileName: PChar;
begin
GetMem(FileName, 255);
FileName^ := Chr(0);
Res := TResourceStream.Create(Instance, ResName, ResType);
!!! FileName := StrCat(FullPath, ResName);
!!! Res.SaveToFile(FileName);
Res.Free;
DoResource := true;
end;


 
PVR   (2001-12-16 19:35) [1]

function DoResource(Instance: HModule; ResType: PChar;
ResName: PChar; Param: Longint): BOOL; safacall{!!!!!!};
var
Res: TResourceStream;
FileName: PChar;
begin
GetMem(FileName, 255);
try
FileName^ := Chr(0);
with TResourceStream.Create(Instance, ResName, ResType) do
try
!!! FileName := StrCat(FullPath, ResName);
!!! SaveToFile(FileName);
finally
Res.Free;
end;
DoResource := true;
finally
freemem(filename);
end
end;


 
MrBeer   (2001-12-16 19:54) [2]

//......
FileName := StrAlloc(512);
Res := TResourceStream.Create(Instance, ResName, ResType)
StrCopy(FileName, FullPath);
StrCat(FileName, ResName);
Res.SaveToFile(StrPas(FileName));
Res.Free;
StrDispose(FileName);
//......


 
MrBeer   (2001-12-16 19:59) [3]

+ zhelatelno

vmesto StrCat polzovatj StrLCat & try block sdelatj.

best regards.


 
Reyst   (2001-12-16 20:03) [4]

> MrBeer.
А так и было. Просто я на время поиска глюка все убрал по максимуму.
Спасибо!


 
PVR   (2001-12-16 22:22) [5]

function DoResource(Instance: HModule; ResType: PChar;
ResName: PChar; Param: Longint): BOOL; safecall{!!!!!!};
var
FileName: string;
begin
GetMem(FileName, 255);
try
FileName := "";
with TResourceStream.Create(Instance, ResName, ResType) do
try
!!! FileName := FullPath+string(ResName);
!!! SaveToFile(FileName);
finally
Res.Free;
end;
DoResource := true;
finally
freemem(filename);
end
end;



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

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

Наверх




Память: 0.45 MB
Время: 0.006 c
1-22040
grab
2001-12-18 18:18
2002.01.08
выравнивание теста в TRichEdit


3-21984
Mr. Andrew
2001-12-05 20:39
2002.01.08
Обновление данных


14-22397
dead
2001-11-10 18:49
2002.01.08
У кого- нибудь есть GIF или JPG контурной карты мира?


4-22488
Arick
2001-10-31 09:20
2002.01.08
как узнать имя загруженной Dll


1-22032
Socol
2001-12-18 10:01
2002.01.08
Монипуляция чисел.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский