![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 29.01.2009
Сообщений: 6
|
![]()
Вызываю функцию из DLL, которая использует TBrush для вывода картинки в TPaintBox. При перерисовке TPaintBox-а выскакивает ошибка: "ExceptionViolaion in module Project2.exe at 0001B92F. Access violation at address 0041B92F in module 'Project2.exe'. Read of address 00000000."
Что-то вроде этого у меня было и с TPen, но подключение к DLL модуля Controls это исправило. А с TBrush проблема осталась. ![]()
Чайник среди чайников
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
![]()
телепаты в отпуске, бессрочном.
код покажите, без него никак. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 29.01.2009
Сообщений: 6
|
![]()
Код программы:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; procedure tp(t1:TCanvas)StdCall; type TForm1 = class(TForm) Button1: TButton; PaintBox1: TPaintBox; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; procedure tp;external '2.dll' name 'tp'; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin tp(PaintBox1.Canvas); end; end. Код DLL: library 2; uses SysUtils, Controls, Graphics, Classes; procedure tp(t1:TCanvas);StdCall; begin t1.Brush.Color:=$808080; t1.Pen.Color:=$000000; t1.Rectangle(0,0,9,39); t1.Rectangle(30,0,39,39); end; exports tp; {$R *.res} begin end. ![]()
Чайник среди чайников
Последний раз редактировалось Владимиp; 30.01.2009 в 00:45. Причина: небольшая неточность |
![]() |
![]() |
![]() |
#4 |
Регистрация: 29.01.2009
Сообщений: 6
|
![]()
Очень нужно! ПОЖАЛУЙСТА ПОМОГИТЕ!
Чайник среди чайников
|
![]() |
![]() |
![]() |
#5 |
Delphi forever
Форумчанин
Регистрация: 13.01.2009
Сообщений: 113
|
![]()
Во первых нет необходимости указывать дерективу Name здесь
var Form1: TForm1; procedure tp;external '2.dll' name 'tp'; implementation т.к из длл эта процедура экспортируеся без указания имени во вторых попробуй динамический импорт. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 29.01.2009
Сообщений: 6
|
![]()
Динамический импорт не помогает. Кто-то может еще что-нибуть предложить?
Чайник среди чайников
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 29.01.2009
Сообщений: 6
|
![]()
Не помогло. Кто-то может еще что-нибудь предложить???
![]()
Чайник среди чайников
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
![]()
Не передавайте в dll объект TCanvas, созданный в приложении. Можно передать handle:
Код:
|
![]() |
![]() |
![]() |
#9 |
Регистрация: 29.01.2009
Сообщений: 6
|
![]()
alexBlack, ОГРОМЕННОЕ СПАСИБИЩЕ тебе!!!!
![]()
Чайник среди чайников
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DLL в DELPHI | Шульц | Общие вопросы Delphi | 6 | 11.01.2009 08:28 |
Создать DLL на C# и вызвать её в Delphi (Delphi) | RIO | Общие вопросы Delphi | 2 | 25.03.2008 15:33 |
Создать DLL на C# и вызвать её в Delphi | RIO | Общие вопросы .NET | 2 | 22.03.2008 22:17 |
Передача данных из VC++ DLL в Delphi App | Kosoglaz | Общие вопросы C/C++ | 2 | 05.02.2008 10:53 |
Delphi + dll= Invalid Pointer Operator | LEKA | Общие вопросы Delphi | 4 | 01.05.2007 23:38 |