Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться с указателями Найти похожие ветки
← →
Prove (2005-02-25 05:21) [0]Нужно в dll иметь функцию, возвращающую boolean и способную при успехе (true) еще и "вернуть" integer.
// В проекте:
function Prove(fname:PChar; kol:Pointer):boolean; external "aaa.dll";
implementation
procedure TForm1.Button1Click(Sender: TObject);
var kkol:integer;
begin
Prove("111",Pointer(kkol));
end;
// В dll:
library aaa;
uses
ShareMem,
func in "func.pas";
exports Prove;
end.
// В func.pas:
uses
ShareMem,
windows,
SysUtils, Variants,
Classes;
function Prove(fname:PChar; kol:Pointer):boolean; stdcall;
implementation
function Prove(fname:PChar; kol:Pointer):boolean; stdcall;
begin
//integer(kol^):=5;
MessageBox(0,fname,"",0);
result:=false;
end;
MessageBox показывает иероглифы, а после ошибка с access violation..
Одним словом, помогите разобраться.. )
← →
Prove (2005-02-25 05:52) [1]Рыбяты, все пашет! Если убрать stdcall.
Кто знающий, объясните по-простому, почему ошибка была?
Не понял я в хелпе, что значит передача параметров справа налево.. Это как?
Register, pascal, cdecl, stdcall и safecall - чем отличаются?
И когда все-таки stdcall надо использовать?
← →
KSergey © (2005-02-25 07:58) [2]> [1] Prove (25.02.05 05:52)
> Не понял я в хелпе, что значит передача параметров справа
> налево.. Это как?
Лень.
Надо везде втавить одинаковые соглашения о передаче параметров. Или уж везде stdcall, или уж везде - без него.
ПО основному же вопросу
> Нужно в dll иметь функцию, возвращающую boolean и способную
> при успехе (true) еще и "вернуть" integer
Функцию просто описать как
function Prove(fname:PChar; var kol:Integer):boolean;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.041 c