![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вызов функции из DLL в методе объекта
loser © (2013-07-19 18:51:00)Привет всем! Столкнулся со следующей ситуацией: при вызове функции dll из основного потока программы - проблем нет, но при попытке создания метода специального объекта для работы с dll возникает ошибка обращения к памяти... В Чем может быть косяк?
P.S. функции dll определены в отдельном юните, который объявлен и для основного приложения и для объекта.
Rouse_ (2013-07-20 22:02:00) [1]Как будет код, так и приходи, а пока закрываемся.
loser (2013-07-20 21:43:00) [2]Да, танцор из меня действительно не очень по известным причинам (как, впрочем, и программист))
loser (2013-07-20 21:38:00) [3]
> Плохиш © (20.07.13 20:57) [15]
Используемую переменную определяют в функции OpenDev
Плохиш (2013-07-20 20:57:00) [4]
> DevDriver.Create(FormHandle : THWND; DevInt : integer);
> begin
> OpenDev(@FHandle);
>
Используемую переменную определять дядя пушкин должен?
> loser (20.07.13 16:28) [13]
> Спасибо))) а вообще рад студио х3 удивляет
>
>
Плохому танцору известно, что мешает.
Rouse_ (2013-07-20 20:52:00) [5]Сам фшоке...
loser (2013-07-20 16:28:00) [6]Спасибо))) а вообще рад студио х3 удивляет
Rouse_ (2013-07-20 15:39:00) [7]Ну тогда ошибка в 17-ой строке...
loser (2013-07-20 14:39:00) [8]Ну да, по памяти...
Rouse_ (2013-07-20 14:37:00) [9]Это ты опять по памяти написал?
Вот здесь написано что-то совсем невразумительное:
DevDriver = class;
private
FHandle : THandle;
FHWND : THWND;
FInt : Integer;
end;
public constructor Create(FormHandle : THWND; DevInt : integer);
loser (2013-07-20 12:19:00) [10]unit DLLfunct;
interface
uses DevConst;
function OpenDev(Description : PHandle):INT; stdcall; external 'Driver.dll';
implementation
end;
unit DevClass;
interface
uses DevConst, DLLfunct;
DevDriver = class;
private
FHandle : THandle;
FHWND : THWND;
FInt : Integer;
end;
public constructor Create(FormHandle : THWND; DevInt : integer);
implementation
DevDriver.Create(FormHandle : THWND; DevInt : integer);
begin
OpenDev(@FHandle);
FHWND : =FormHandle;
FInt := DevInt;
inherited Create;
end;
loser (2013-07-20 12:00:00) [11]Нормально надерьмокодил, но не работает))
Плохиш (2013-07-20 11:11:00) [12]Берëш листок бумаги с карандашом и медленно выполняешь свой говнокод записывая все действия, значения переменных и параметров.
PS. Выполнять так как надерьмокодил, а не как должно работать.
loser (2013-07-20 10:29:00) [13]Всё компилится и даже работает, но режиме debug. А в релизе - облом: access violation
Германн (2013-07-19 22:26:00) [14]
> но по смыслу...
По смыслу это на форум телепатов. :)
loser (2013-07-19 21:13:00) [15]Кода в данный момент нет на руках, просто примерно написал, но по смыслу...
Германн (2013-07-19 21:06:00) [16]Что это такое? Оно же даже не скомпилится.
loser (2013-07-19 20:47:00) [17]
unit DLLfunct;
interface
uses DevConst;
function OpenDev(Description : PHandle):INT; stdcall; external 'Driver.dll';
implementation
end;
unit DevClass;
interface
uses DevConst, DLLfunct;
DevDriver = class;
private
FHandle : THandle;
FHWND : THWND;
FInt : Integer;
end;
public Create(FormHandle : THWND; DevInt : integer);
implementation
DevDriver.Create(FormHandle : THWND; DevInt : integer);
begin
OpenDev(@FHandle);
FHWND : FormHandle;
FInt : DevInt;
inherited Create;
end;
RWolf (2013-07-19 19:52:00) [18]Код в студию.