Форум: "Начинающим";
Текущий архив: 2014.04.27;
Скачать: [xml.tar.bz2];
ВнизВызов функции из DLL в методе объекта Найти похожие ветки
← →
loser (2013-07-19 18:51) [0]Привет всем! Столкнулся со следующей ситуацией: при вызове функции dll из основного потока программы - проблем нет, но при попытке создания метода специального объекта для работы с dll возникает ошибка обращения к памяти... В Чем может быть косяк?
P.S. функции dll определены в отдельном юните, который объявлен и для основного приложения и для объекта.
← →
RWolf © (2013-07-19 19:52) [1]Код в студию.
← →
loser (2013-07-19 20:47) [2]
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;
← →
Германн © (2013-07-19 21:06) [3]Что это такое? Оно же даже не скомпилится.
← →
loser (2013-07-19 21:13) [4]Кода в данный момент нет на руках, просто примерно написал, но по смыслу...
← →
Германн © (2013-07-19 22:26) [5]
> но по смыслу...
По смыслу это на форум телепатов. :)
← →
loser (2013-07-20 10:29) [6]Всё компилится и даже работает, но режиме debug. А в релизе - облом: access violation
← →
Плохиш © (2013-07-20 11:11) [7]Берëш листок бумаги с карандашом и медленно выполняешь свой говнокод записывая все действия, значения переменных и параметров.
PS. Выполнять так как надерьмокодил, а не как должно работать.
← →
loser (2013-07-20 12:00) [8]Нормально надерьмокодил, но не работает))
← →
loser (2013-07-20 12:19) [9]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;
← →
Rouse_ © (2013-07-20 14:37) [10]Это ты опять по памяти написал?
Вот здесь написано что-то совсем невразумительное:DevDriver = class;
private
FHandle : THandle;
FHWND : THWND;
FInt : Integer;
end;
public constructor Create(FormHandle : THWND; DevInt : integer);
← →
loser (2013-07-20 14:39) [11]Ну да, по памяти...
← →
Rouse_ © (2013-07-20 15:39) [12]Ну тогда ошибка в 17-ой строке...
← →
loser (2013-07-20 16:28) [13]Спасибо))) а вообще рад студио х3 удивляет
← →
Rouse_ © (2013-07-20 20:52) [14]Сам фшоке...
← →
Плохиш © (2013-07-20 20:57) [15]
> DevDriver.Create(FormHandle : THWND; DevInt : integer);
> begin
> OpenDev(@FHandle);
>
Используемую переменную определять дядя пушкин должен?
> loser (20.07.13 16:28) [13]
> Спасибо))) а вообще рад студио х3 удивляет
>
>
Плохому танцору известно, что мешает.
← →
loser (2013-07-20 21:38) [16]
> Плохиш © (20.07.13 20:57) [15]
Используемую переменную определяют в функции OpenDev
← →
loser (2013-07-20 21:43) [17]Да, танцор из меня действительно не очень по известным причинам (как, впрочем, и программист))
← →
Rouse_ © (2013-07-20 22:02) [18]Как будет код, так и приходи, а пока закрываемся.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.04.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c