Форум: "Начинающим";
Текущий архив: 2012.05.06;
Скачать: [xml.tar.bz2];
Внизstdcall Найти похожие ветки
← →
Gu (2012-01-06 00:28) [0]в dll есть несколько юнитов, которые друг-друга юзают + в них есть экспорт процедур.
напримерunit1;
..
Function MyXY(x,y:integer):integer; stdcall;
Exports MyXy;
implementation
Function MyXY(x,y:integer):integer;
begin
result:=x+y;
end;uniit2;
uses unit1;
...
implementation
Procedure MyPrc;
var a,b,z:integer;
begin
...
z:=MyXy(a,b);
end;
Вопрос: будет ли влиять на внутренние функции (или еще на что) обращение к процедурам, которые идут на экспорт?
Или лучше сделать так (для внутреннего и внешнего использования писать отдельные процедуры):unit1;
..
Function MyXY(x,y:integer):integer; stdcall;
Function MyXYTmp(x,y:integer):integer;
Exports MyXy;
implementation
Function MyXYTmp(x,y:integer):integer;
begin
result:=x+y;
end;
Function MyXY(x,y:integer):integer;
begin
result:=MyXYTmp(x,y);
end;uniit2;
uses unit1;
...
implementation
Procedure MyPrc;
var a,b,z:integer;
begin
...
z:=MyXyTmp(a,b);
end;
← →
DVM © (2012-01-06 00:47) [1]В приведенном примере все равно, второй вариант особого смысла не имеет.
Такого рода вещи обычно появляются когда надо сохранить неизменным внешний интерфейс, при меняющемся внутреннем. Ну типа WinApi и NativeApi
← →
Gu (2012-01-06 00:53) [2]в приведенном - да, а если функции - тяжелые, с кучей сложных параметров и тп.? т.е. имеет ли смысл их выностить в отдельные процедуры, к которым потом обращаться во внутренних юнитах и еще отдельными процедурами их на экспорт отправлять?
← →
DVM © (2012-01-06 01:03) [3]
> Gu (06.01.12 00:53) [2]
какая разница будешь ли ты вызывать функцию напрямую или через еще одну обертку над ней?
← →
Gu (2012-01-06 01:13) [4]не, речь идет о том, что "вызывать функцию" и "вызывть функцию помеченую stdcall и идущую на экспорт", а не вызывать функцию через обертку.
← →
DVM © (2012-01-06 01:15) [5]
> Gu (06.01.12 01:13) [4]
> вызывть функцию помеченую stdcall и идущую на экспорт
т.е тебя беспокоит только то, что у функции указано соглашение stdcall?
← →
RWolf © (2012-01-06 01:22) [6]никакой разницы между вызовом «внутренней» и «импортированной» функции нет, с точностью до соглашения о вызове (stdcall и проч.).
← →
Gu (2012-01-06 01:30) [7]понятно
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.05.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c