Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Не раборает dll


Автор: Volkogriz 7.1.2013, 01:32
Доброе время суток!
У меня длл-ка не выходит не как(
Все ошибки вылетают, и не могу понять в чём тут дело.
Код

library SysVideo;

uses
    Windows,
  Classes,ShareMem;

function PlayJpg(amodule:THandle; Resjpg:WideString; jpg:PAnsiChar):TStream; stdcall;
var
  H:THandle;
  ResName: WideString;
   ResType: PAnsiChar;
  imageStream:TStream;
  imageStr:TResourceStream;
begin
ResName:= Resjpg;
ResType:= jpg;
H:=LoadLibrary(PChar(amodule));
PlayJpg.Create;
imageStr:= TResourceStream.Create(H,ResName,ResType);
imageStr.SaveToStream(imageStream.Create);
PlayJpg:= imageStream;
end;

exports PlayJpg;
begin
   end.

Вызываю так:

Код

implementation

{$R *.dfm}
function  PlayJpg(amodule:THandle; Resjpg:String; jpg:PAnsiChar):TStream;
external 'SysVideo.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
jpeg:TJPEGImage;
begin
amodule:=LoadLibrary(PChar(extractfilepath(Application.ExeName)+ 'SystemFacility.dll'));
jpeg:= TJPEGImage.Create;
jpeg.LoadFromStream(PlayJpg(amodule,'ict','jpeg'));
Image1.Picture.Assign(jpeg);
FreeLibrary(Handle);
end;

Ошибка так:
user posted image
Помогите пожалуйста разобраться!
С уважением,
Volkogriz!

Автор: bems 7.1.2013, 07:09
не хватает stdcall в external-объявлении
ну и нельзя возвращать классы из длл, хоть очень часто и будет казаться что всё работает

Автор: Poseidon 14.1.2013, 15:46
Цитата(Volkogriz @  7.1.2013,  01:32 Найти цитируемый пост)
Ошибка так:
Она вот так вот перевернуто у тебя и появляется?  smile 

Автор: Volkogriz 19.1.2013, 23:27
)Нет1)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)