dll
От: Аноним  
Дата: 27.09.02 07:45
Оценка:
товарищи! такой глюк!
Создаю dll? динамически ее загружаю, получаю ее хандл, адрес функции, передаю туда на сложении 2 числа, а в dll приходят 6-ти значные монстры
Может я чего не догоняю
Re: dll
От: Alex Fedotov США  
Дата: 27.09.02 08:04
Оценка:
Здравствуйте Аноним, Вы писали:

А>Создаю dll? динамически ее загружаю, получаю ее хандл, адрес функции, передаю туда на сложении 2 числа, а в dll приходят 6-ти значные монстры :(

А>Может я чего не догоняю :(

Прежде всего, ты, видимо, не отдаешь себе отчет в том, что эти форумы посещают в основном программисты, а не телепаты. Поэтому, если ты не покажешь свой исходный код, вряд ли кто-то будет способен тебе помочь.

Короче, код в студию!
-- Alex Fedotov
Re[2]: код
От: Аноним  
Дата: 27.09.02 08:15
Оценка:
Здравствуйте 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;
Re[3]: код
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 27.09.02 09:08
Оценка:
Здравствуйте Аноним, Вы писали:

А>Вызов:

А>var fun : function (a,b:integer):integer;

Сюда stdcall забыл преписать.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[4]: код
От: shado Россия  
Дата: 27.09.02 09:12
Оценка:
Здравствуйте Anatolix, Вы писали:

A>Здравствуйте Аноним, Вы писали:


А>>Вызов:

А>>var fun : function (a,b:integer):integer;

A>Сюда stdcall забыл преписать.



Большущее спасибо, иногда забываешь очевидные веши и грешишь на бедную дельфю
Жалко палку -- бьет по псу. Палка, я тебя спасу! ©Олег Ладыженский
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.