Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отличия обычного проекта и Dll-проекта


Страницы:   1 2

Starkom ©   (2002-10-18 12:53:00) 

Была прога с кучей кода. Оформили ее, как Dll, чтобы включить в другой Билдерный проект. Перестало работать очень многое (код не менялся). Капшены у форм присваиваться неправильно стали, кейпрессы в комбобоксах перестали обрабатываться. Да вообще много что перестало или стало по-другому работать!!!
Помогите, что делать в данной ситуации?


NUU   (2002-10-21 13:12:00) [21]

Сорбственно а чего Вы хотели чтобы было.
Естественно глючит, Application.Run надо было бы и оставить.
Да и MainForm инициализироваться должна Application.CreateForm(TMainForm, MainForm);Иначе она Application.MainForm никогда и не будет.Посмотри сырцы Application.CreateForm и все поемешь.


Starkom   (2002-10-21 10:03:00) [22]

просто вместо .dpr-ного
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.Run;

вставили вызов функции из Dll -
procedure RunGen();
begin
MainForm:=TMainForm.Create(nil);
MainForm.Show();
end;

exports
RunGen;

Код MainForm вообще не меняли.
А насчет стека при вызове функций - в Билдере везде юзаем __fastcall


Петров Денис   (2002-10-21 09:44:00) [23]

В параметрах функций DLL есть пасквилевские строки (в смысле string)? Если есть - то неплохо переделать их в PChar.

Опять же, C++ и Delphi обычно используют разную организацию стека при вызове функций - эта проблема решается унификацией описания прототипов функций с каким-нибудь модификатором типа "stdcall".


Bis   (2002-10-21 09:39:00) [24]

а как вызываешь формы дельфовские из буилдера?
и кстати, ты инстанцию передаешь?


Starkom   (2002-10-21 09:18:00) [25]

Проект был отписан на Delphi 5
Затем переделан под Dll в нем же.
Проект, юзаюзий Dll, пишется на Builder 5.


Bis   (2002-10-21 09:08:00) [26]

Ты бы описал хоть, какую среду используешь!
Я то знаешь ли есть особенности что и как прилинковывать...


Starkom   (2002-10-21 08:58:00) [27]

да блин
что дебажить то?


Opuhshii   (2002-10-18 15:55:00) [28]

"что делать в данной ситуации?"
посмотреть,.. пересобрать проект,... посмотреть,.. и дебажить, дебажить дебажить,...


Starkom   (2002-10-18 15:50:00) [29]

ну помогите, пожайлуста! Хотя бы возможные причины. А то мы не знаем даже, с какой стороны подойти.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо