Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2009, 23:09   #1
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию RUNTIME ERROR 216 при работе с DLL

Привет всем!
проблемма следущая:
написал библиотеку все отлично работает, но по завершении исполняющей программы - выдает
RUNTIME ERROR 216 . Беда прям какая то!))) когда запускаешь в ИДЕ все нормально , когда так получается
что ДЛЛ не используется - все нормально. Прогнал через Ф7 полностью от начала до конца - ошибка высКАКИВАЕТ
после Application.Run; Шо це? непонятно! ЗАРАНЕЕ СПАСИБО!
Велкам! :D http://radiomedtech.ucoz.ru
100GRamm вне форума Ответить с цитированием
Старый 04.11.2009, 23:15   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Общее нарушение защиты" - General Protection Fault.
Ошибка доступа к памяти EAccessViolation.
Обращение к уже "освобожденной" памяти.
Или указатель равен nil.
В любом случае, это операции с памятью.
Проверяйте код.

Последний раз редактировалось mihali4; 04.11.2009 в 23:18.
mihali4 вне форума Ответить с цитированием
Старый 04.11.2009, 23:24   #3
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

Да вот проверяю проверяю-и не чего не нахожу(
я там использую TStringList , но вроде все как положенно креатю и потом фри
КОД в ЕХЕ:

procedure TForm1.StringGrid1DblClick(Sender: TObject);
var FILES: TInfo;
begin
if stringgrid1.Row>0 then
begin
FILES:=CreateInfo;

R_BNS(FILES, fi);
BN_EN(FILES, fi, 'q', inttostr(form1.StringGrid1.Row) ,'c:\1\');

FreeInfo(FILES);
end;

end;

КОД В DLL:

function CreateInfo:TInfo; stdcall;
begin
result.name:=TStringList.Create;
result.size:=TStringList.Create;
end;

procedure FreeInfo(I:TInfo); stdcall;
begin
I.name.Free;
I.size.Free;
end;

но хочу заметить что происходит это ПО ЗАВЕРШЕНИИ ПРИЛОЖЕНИЯ
а пока я форму не закрыл - все ок
Велкам! :D http://radiomedtech.ucoz.ru
100GRamm вне форума Ответить с цитированием
Старый 04.11.2009, 23:42   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

ShareMem объявляли?
ShareMem должен быть объявлен первым в секции USES как в DLL, так и в файле проекта, который его использует.
mihali4 вне форума Ответить с цитированием
Старый 04.11.2009, 23:45   #5
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

неа))) я вобще первый раз использую библиотеки))
а как это делается?

ругается! говорит дай дку!

library BNE;
uses
sharemem,windows,SysUtils, Classes;
{$R *.res}...


unit DLL_EX;
interface
uses sharemem, Dialogs, Controls, StdCtrls, FileCtrl, Grids, ComCtrls, Classes
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, ComCtrls, FileCtrl, Tabs;
....

MESSAGES: File not found: 'sharemem.dcu'

Есть кнопка "Правка". И в правилах про нее написано. Ибо это есть флуд - налепливание постов друг за дружкой...
Велкам! :D http://radiomedtech.ucoz.ru

Последний раз редактировалось mihali4; 04.11.2009 в 23:58.
100GRamm вне форума Ответить с цитированием
Старый 04.11.2009, 23:57   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от 100GRamm Посмотреть сообщение
я вобще первый раз использую библиотеки[/COLOR]
То есть вы методом тыка пробуете???
Надо бы матчасть подучить - то бишь книжку умную почитать.
Много таких книжек в первых темах каждого раздела.
Очень рекомендую...

З.Ы. А Sharemem.dcu находится в каталоге Borland\Delphi7\Lib. У меня, по крайней мере.
А Sharemem.pas находится в каталоге Borland\Delphi7\Source\Rtl\Sys.

Последний раз редактировалось mihali4; 05.11.2009 в 00:02.
mihali4 вне форума Ответить с цитированием
Старый 05.11.2009, 00:00   #7
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

Цитата:
Сообщение от 100GRamm Посмотреть сообщение
неа))) я вобще первый раз использую библиотеки))
а как это делается?

ругается! говорит дай дку!

Есть кнопка "Правка". И в правилах про нее написано. Ибо это есть флуд - налепливание постов друг за дружкой...
пробовал - выходит сообщение что то вроде НЕ СОХРАНЮ -ТАК ПОЙДЕТ))) ...по поводу книжки- я по книжке и разбирался, но там ничего про SHAREMEM нет(
Велкам! :D http://radiomedtech.ucoz.ru
100GRamm вне форума Ответить с цитированием
Старый 05.11.2009, 00:41   #8
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

есть ShareMem.pas но нет ShareMem.dcu (
Велкам! :D http://radiomedtech.ucoz.ru
100GRamm вне форума Ответить с цитированием
Старый 05.11.2009, 00:45   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Осталось скомпилировать...
Или это тоже за гранью понимания?
mihali4 вне форума Ответить с цитированием
Старый 07.11.2009, 13:37   #10
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

не, все предельно понятно, спасибо! все так и есть.
Велкам! :D http://radiomedtech.ucoz.ru
100GRamm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль runtime error Лида200915 Помощь студентам 11 18.09.2009 22:00
Runtime error 201 mmx358 Паскаль, Turbo Pascal, PascalABC.NET 2 26.08.2009 11:38
error 216 Juffin Общие вопросы Delphi 6 05.04.2009 19:38
Ошибка runtime error 105 at 0001:002B agoriachev Паскаль, Turbo Pascal, PascalABC.NET 2 29.01.2009 16:25
Microsoft Visual C++ Library (Runtime Error!) Карась Свободное общение 2 25.12.2008 23:31