Вниз
Скачать: CL | DM;

динамической загрузке DLL   Найти похожие ветки 

 
Jul   (2002-10-22 11:44) [0]

Добрый день.
Могли бы вы поконсультировать профана в вопросе динамической загрузке DLL.
Я приведу код, в статическом варианте все работает, при динамической загрузке функция из DLL - GetSimpleText возвращает неправильное значение, не реагируя на входной параметр. При выгрузке появляется exception - Access violation.
Спасибо.
GetSimpleText: function(LangRus: Boolean): PChar;
LibHandle: THandle;

implementation

{$R *.DFM}

//function GetSimpleText(LangRus: Boolean): PChar; stdcall; external "fileutl.dll";
//function GetSimpleText(LangRus: PChar): PChar; stdcall; external "fileutl.dll";

procedure TForm1.Button1Click(Sender: TObject);
begin
@GetSimpleText := nil;
LibHandle := LoadLibrary("fileutl.dll");
if LibHandle <> 0 then begin
@GetSimpleText := GetProcAddress(LibHandle,"GetSimpleText");
if @GetSimpleText <> nil then
ShowMessage(StrPas(GetSimpleText(True)));
end;
FreeLibrary(LibHandle);
// ShowMessage(StrPas(GetSimpleText(True)));
// ShowMessage(StrPas(GetSimpleText(False)));
end;


 
Skier ©   (2002-10-22 11:48) [1]

>Jul


type
TGetSimpleText = function(LangRus: Boolean): PChar;stdcall;
var
LibHandle: THandle;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
GetSimpleText : TGetSimpleText;
begin
@GetSimpleText := nil;
LibHandle := LoadLibrary("fileutl.dll");
if LibHandle <> 0 then begin
@GetSimpleText := GetProcAddress(LibHandle,"GetSimpleText");
if @GetSimpleText <> nil then
ShowMessage(StrPas(GetSimpleText(True)));
end;
FreeLibrary(LibHandle);
end;


И замени Boolean на Integer для
надёжности...



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
7-101554
chernoruk
2002-08-18 14:20
2002.10.31
Проблемка с LPT и CreateFile


3-101112
Сергей Воропаев
2002-10-08 17:14
2002.10.31
Как сам файл базы держать внутри exe-шника?


1-101288
Vladislav
2002-10-22 15:53
2002.10.31
ShellExecute(0, Open , mailto:lala@lala.ru?subject=Письмо&Att


6-101431
Витёк
2002-08-27 05:01
2002.10.31
Как пинговать компьютер host каждые t минут


1-101318
Shadow
2002-10-19 10:38
2002.10.31
Как сделать файл доступным для записи нескольким программам сразу




   Наверх