Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вызов функции из 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]

Код в студию.


Наверх

Титульная страница Поиск, карта сайта Написать письмо