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

Вниз

Помогите разобраться с указателями   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
14-1108634829
uny
2005-02-17 13:07
2005.03.13
win98 долго входит в сеть при dialup, причём она сразу в сети


3-1107935799
opoloxai
2005-02-09 10:56
2005.03.13
ADOTable.Refresh


3-1108373854
andrey__
2005-02-14 12:37
2005.03.13
метод Locate находит не первую запись а последующую.


1-1109234272
Zhekson
2005-02-24 11:37
2005.03.13
запуск процедур в отдельных потоках


14-1109067231
1008
2005-02-22 13:13
2005.03.13
Как с этого сайта статьи гамузом стянуть?