Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизПроблемы с формой в dll :( Найти похожие ветки
← →
Ezorcist (2006-10-31 19:59) [0]Опять проблемы с dll. после создания формы в dll приложение не может нормально завершиться (ошибка). в чем можеь юыть проблема?
← →
Percent (2006-10-31 20:01) [1]Шо?! Опять?!
← →
Ezorcist (2006-10-31 20:03) [2]Опять! :( мне самому уже надоело, но в эту длл столько вписано что уже надо заставить ее работать хоть как а потом фиг с ними с этими формами в длл.... (времени не хватает)
← →
Percent (2006-10-31 20:07) [3]1. Библиотека грузится динамически?
2. Как, когда и где уничтожается форма?
3. Когда и где выгружается бибиотека?
← →
Ezorcist (2006-10-31 20:08) [4]1 статически
2 на создаваемой форме кнопка с Close
3 а статическую надо выгружать?
← →
Percent (2006-10-31 20:12) [5]а статическую надо выгружать?
Не надо.
2 на создаваемой форме кнопка с Close
Если форму закрыть вручную, а потом закрыть приложение - ошибка возникает?
P.S. "Ошибка", наколько понимаю, Access Violation?
← →
Dmitrij_K (2006-10-31 20:20) [6]Проблема в коде, на 17-ой строке
Код показывай
← →
Ezorcist (2006-10-31 20:31) [7]Меня удивило что ошибка даже не AV а собственно и сообщений там никаких нет. Посе закрытия немного времени проходит и отладчик открывет окно а там что-то в hex -е... у окна заголовок CPU. Кстати что это такое?
при ручном закрытии ничего не меняется
2Dmitrij_K
Function F1(d:string):String;Export;Stdcall;
var newdialogform:TParamForm;
begin
newdialogform:=THubParamForm.Create(nil);
newdialogform.Name:="par1";
newdialogform.Caption:=d;
newdialogform.showmodal;
If ParamsResult.IsOk then
result:="1"
else result:="2";
FreeAndNil(newdialogform);
end;
← →
Percent (2006-10-31 20:33) [8]FreeAndNil(newdialogform);
NewDialogForm.Release;
← →
MetalFan © (2006-10-31 20:35) [9]
> Ezorcist (31.10.06 20:31) [7]
о ужас... еще и string... в uses sharemem есть?
← →
Percent (2006-10-31 20:38) [10]о ужас... еще и string... в uses sharemem есть?
Если мне не изменяет память, это у него есть... :-)
← →
Ezorcist (2006-10-31 20:43) [11]2 Percent и MetalFan нету sharemem .
а string надо на PChar заменить наверное...
[8] не помогло :(
← →
Desdechado © (2006-10-31 20:48) [12]Нафига возвращать строку из одной цифры, если можно вернуть число?
Тогда никаких шаремемов не надо, и все красиво.
Если уж так строка нужна, в вызывалке преобразуешь в нее.
← →
Percent (2006-10-31 20:52) [13]нету sharemem
Ну так впиши!
Для кого DLL Wizard комментарии пишет?
ShareMem должен быть первым используемым юнитом в файлах проекта библиотеки и приложения.
То есть,
uses
ShareMem,
{все остальные юниты};
← →
Ezorcist (2006-10-31 20:54) [14]2 Desdechado
1)возвращение числа в строке - это фигня, я просто выкинул большой фрагмент кода.
2)что такое sharemem ?
3)как проблему то решить?
← →
Ezorcist (2006-10-31 20:56) [15]меня опередили))
вписал, проблему это не решило :(
← →
Percent (2006-10-31 20:56) [16]2)что такое sharemem ?
F1 нажать религия не позволяет?
On Windows, if a DLL exports routines that pass long strings or dynamic arrays as parameters or function results (whether directly or nested in records or objects), then the DLL and its client applications (or DLLs) must all use the ShareMem unit. The same is true if one application or DLL allocates memory with New or GetMem which is deallocated by a call to Dispose or FreeMem in another module. ShareMem should always be the first unit listed in any program or library uses clause where it occurs.
ShareMem is the interface unit for the BORLANDMM.DLL memory manager, which allows modules to share dynamically allocated memory. BORLANDMM.DLL must be deployed with applications and DLLs that use ShareMem. When an application or DLL uses ShareMem, its memory manager is replaced by the memory manager in BORLANDMM.DLL.
← →
Percent (2006-10-31 20:57) [17]вписал, проблему это не решило
Перекомпилировал приложение и библиотеку?
← →
Ezorcist (2006-10-31 21:02) [18][16] да действительно.....
[17] конечно
← →
Desdechado © (2006-10-31 21:02) [19]
var newdialogform:TParamForm;
begin
newdialogform:=THubParamForm.Create(nil);
что-то очень подозрительно это
← →
Ezorcist (2006-10-31 21:05) [20]2Desdechado
опечатка PS ну все таки оно компилиться же ;)
← →
Percent (2006-10-31 21:07) [21]Давай файл проекта приложения и файл проекта библиотеки.
← →
Ezorcist (2006-10-31 21:11) [22]2Percent
там все так написано что ногу сломишь такой бардак... времени много займет..
я вот к пустой форме подключил и заработало нормально... знасит там не в длл проблема... какие могут быть проблему на стороне вызывающего?
← →
Percent (2006-10-31 21:14) [23]какие могут быть проблему на стороне вызывающего?
Любые.
Приведи хотя бы куски файлов проектов приложения и библиотеки, начиная с первой строки, и до конца секции uses.
← →
Ketmar © (2006-10-31 21:55) [24]quousque tandem???
← →
Ezorcist (2006-10-31 22:16) [25]Приложение:
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls, Grids, ComCtrls, Menus, uChatBox, ustrcomp,uchannelframe,
XPMan, ExtCtrls, ImgList;
Библиотекаlibrary netDialogs;
{ }
uses
sharemem,
SysUtils,
Classes,
forms,windows,
hubparams in "hubparams.pas" {HubParamForm},
unityesorno in "unityesorno.pas" {yesorno},
upopup in "upopup.pas" {popupform},
varunit in "varunit.pas",
gettextunit in "gettextunit.pas" {GetTextForm};
← →
Percent (2006-10-31 22:29) [26]Приложение:
unit uMain;
Это не приложение.
Это модуль (скорее всего - формы).
Файл проекта - это .dpr.
Он начинается с "program".
Выбери "Project" - "View Source".
← →
Percent (2006-10-31 22:32) [27]Ezorcist
Ты бы начал бы с азов, а?
С вот "Hallo, world!", хотя бы, что ли...
← →
Ezorcist (2006-10-31 22:45) [28]В пианитов не стрелять! Играют как умеют...
← →
Percent (2006-10-31 23:07) [29]Файл проекта нашел, пианист?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 2.873 c