Последняя версия DataExpress 3 beta от 22 мая 2018 года. Скачать. Энциклопедия DX. Форум на Develop-Soft

Проблема с STDCALL при вызове функций из не системной DLL

Все о том как сделать что-то с помощью скриптов.
Аватара пользователя
YurAnt
Эксперт
Сообщения: 3375
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Проблема с STDCALL при вызове функций из не системной DLL

Сообщение YurAnt » Сб дек 30, 2017 2:08 am

В чем может быть проблема?

Код в DX:

Код: Выделить всё

procedure DLL_func(H:THandle);
external 'DLL_func@Test_DLL.dll stdcall';

procedure CallProc(Sender: TObject);
begin
debug(Self.EditWindow.Handle)
DLL_func(Self.EditWindow.Handle);
end;
     


Код DLL (delphi):

Код: Выделить всё

procedure DLL_func(SenderHandle:THandle);
...
ShowMessage(VarToStr(SenderHandle));
//ShowMessage(IntToStr(SenderHandle));

Показатели:
Изображение

Аватара пользователя
admin
Разработчик
Сообщения: 3475
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: THadle из DX в DLL

Сообщение admin » Сб дек 30, 2017 9:57 am

Может это уже не тот Self? Попробуйте сохранить первоначальный Self в переменной.

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3375
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Проблема с STDCALL при вызове функций из не системной DLL

Сообщение YurAnt » Сб дек 30, 2017 12:05 pm

Так 2 строки ж рядом... Как он может стать "не тем"?
debug(Self.EditWindow.Handle)
DLL_func(Self.EditWindow.Handle);

В принципе и вся конструкция. Вызов по dxButton...

Аватара пользователя
admin
Разработчик
Сообщения: 3475
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: THadle из DX в DLL

Сообщение admin » Сб дек 30, 2017 1:02 pm

Понятия не имею. Посмотрите какие типы данных можно использовать в DLL.

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3375
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Проблема с STDCALL при вызове функций из не системной DLL

Сообщение YurAnt » Сб дек 30, 2017 3:13 pm

Типы вообще любые, но пробовал передать даже через простой integer - та же картина.

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3375
Зарегистрирован: Чт апр 13, 2017 8:57 am
Контактная информация:

Re: Проблема с STDCALL при вызове функций из не системной DLL

Сообщение YurAnt » Сб дек 30, 2017 5:22 pm

Та же самая проблема с лазарусом. Решилось "уборкой" параметра stdcall при подключении dll.
Изображение


Вернуться в «Общие вопросы.»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя