Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизДостать ресурс из dll Найти похожие ветки
← →
SashkoSoft © (2005-01-26 12:09) [0]Господа, подскажите пожалуйста решение.
Файл ресурсов создаю таким образом:
res.rc
1 RCDATA "pic1.jpg"
2 RCDATA "text.txt"
brcc32 res.rc --> res.res
Далее создаю dll которая является контейнером для файла ресурса.
var
tmpResStream : TResourceStream; // Resource Stream
tmpH:THandle;
begin
tmpH:=LoadLibrary(PChar(libname)); // (подгружаю ДЛЛ)
tmpResStream := TResourceStream.CreateFromID(tmpH,1, RT_RCDATA);
...
tmpJPG.LoadFromStream(tmpResStream); (таким способом я достаю джипеги и все замечательно)
Но вот прочесть строку из текстового файла не получается!
Если Вас не затруднит, подскажите как это сделать.
Заранее Большое Спасибо.
← →
Fay © (2005-01-26 12:26) [1]Попробуй так
function LoadStringFromRes(cName : string) : string;
var
r, sz : DWORD;
p : PChar;
label
Err;
begin
r := FindResource(0, PChar(cName), RT_RCDATA);
if r = 0 then goto Err;
sz := SizeofResource(0, r);
if sz = 0 then goto Err;
p := PChar(LoadResource(, r));
if p = nil then goto Err;
SetString(Result, p, sz);
Exit;
Err :
Result := "";
end;
← →
SashkoSoft © (2005-01-26 12:43) [2]в этом случае нужно создавать файл ресурсов не так как я делал:
1 RCDATA "pic1.jpg"
2 RCDATA "text.txt"
а иначе:
1 RCDATA "pic1.jpg"
MyText Text info.txt ?
и в строке r := FindResource(0, PChar(cName), RT_RCDATA);
вместо cName надо подставить "MyText"?
а в строке p := PChar(LoadResource(, r)); видимо нужно написать:
p := PChar(LoadResource(tmpH2, r)); ?
предварительно написав tmpH2:=LoadLibrary(PChar(libname));
где libname - имя длл-ки ?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.035 c