Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
Время: 0.043 c
15-1160868968
Кадр
2006-10-15 03:36
2006.11.19
Победит ли бесплатный OpenOffice жалкий платный MS Office ?


2-1162472187
Sergey_b
2006-11-02 15:56
2006.11.19
SELECT, UPDATE, INSERT


9-1139153587
VolanD666
2006-02-05 18:33
2006.11.19
Collision Detection


2-1162212959
Alral
2006-10-30 15:55
2006.11.19
Memo1.Lines, var str: TStrings


2-1162462779
pasha_golub
2006-11-02 13:19
2006.11.19
Как поймать сообщение посланное для Application.Handle?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский