товарищи! такой глюк!
Создаю dll? динамически ее загружаю, получаю ее хандл, адрес функции, передаю туда на сложении 2 числа, а в dll приходят 6-ти значные монстры
Может я чего не догоняю
Здравствуйте Alex Fedotov, Вы писали:
AF>Здравствуйте Аноним, Вы писали:
А>>Создаю dll? динамически ее загружаю, получаю ее хандл, адрес функции, передаю туда на сложении 2 числа, а в dll приходят 6-ти значные монстры
А>>Может я чего не догоняю
AF>Прежде всего, ты, видимо, не отдаешь себе отчет в том, что эти форумы посещают в основном программисты, а не телепаты. Поэтому, если ты не покажешь свой исходный код, вряд ли кто-то будет способен тебе помочь.
AF>Короче, код в студию!
DLL :
function plus (a,b:integer):integer;stdcall;
begin
Result := a + b;
end;
exports plus;
Вызов:
var fun : function (a,b:integer):integer;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var i1,i2,i3 : integer;
begin
try
HNDL := LoadLibrary('Mydll.dll');
if HNDL < 32 then Exit;
@fun := GetProcAddress(HNDL,'plus');
if @fun = nil then Exit;
i1 := 4;
i2 := 6;
i3 := IntToStr(fun(i1,i2));
FreeLibrary(HNDL);
except end;
end;
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте Anatolix, Вы писали:
A>Здравствуйте Аноним, Вы писали:
А>>Вызов:
А>>var fun : function (a,b:integer):integer;
A>Сюда stdcall забыл преписать.
Большущее спасибо, иногда забываешь очевидные веши и грешишь на бедную дельфю
Жалко палку -- бьет по псу. Палка, я тебя спасу! ©Олег Ладыженский