Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.23;
Скачать: CL | DM;

Вниз

Непонятка с var в dll`ай   Найти похожие ветки 

 
hooky-mars   (2005-09-29 18:13) [0]

Saluer!

Создал длл проэкт в нем есть форма, которая работает как диалог, те. запрашивает у пользователя данные и возврашает результат в процесс вызвавший его
Экспортируемая функция:

functuin ....(hwnd:THandel; var srv,ndb:String):...
var CFORM:TForm1;
begin
Application.Handle:=hwnd;
CFORM:=TForm1.Create(Application.Owner);
...
if Cform.showModal = 458 then
begin
  srv:=Server.Text //TEdit
  ndb:=Name.Text //TEdit
end;
Cform.Free;
end;

И когда я пытаюсь после завершения функции воспользоваться переменными, которые были посланны в качестве srv,ndb то выскакивает ошибка о неверном обрашении с памятью.
За место вара использовать аут не подет.
Что можно сделать?


 
Digitman ©   (2005-09-29 18:17) [1]


> Cform.showModal = 458


это что такое ?
что за велосипед ?)


> я пытаюсь после завершения функции воспользоваться переменными


и КАК же ты пытаешься ?


> За место вара использовать аут не подет


"вара" vs "аут" - это из другой совсем оперы.
при том что суть одинакова.


 
han_malign ©   (2005-09-29 18:18) [2]

String нельза передавать в DLL, а уж var и подавно...
У DLL и основного приложения разные менеджеры памяти - либо подключать ShareMem, либо не использовать string...


 
GuAV ©   (2005-09-29 18:31) [3]

han_malign ©   (29.09.05 18:18) [2]
а уж var и подавно...

С чего бы это !?
Смори хотя бы тот же windows.pas, там есть функции с var параметрами, импртируемые из dll - и ничё, работает. Для использвания ссылки не нужен менеджер памяти.


 
hooky-mars   (2005-09-29 18:55) [4]


> > Cform.showModal = 458

Это то что прилшо под пальцы
> "вара" vs "аут" - это из другой совсем оперы.
> при том что суть одинакова.

По логике они должны быть разными, потому как аут предпологате полько запись в эти переменные (имею в виду внутри экспортируемой функции), а вар позволяет так же читать их (а это мне как раз и надо)
Вот более полные пример функции:

functuin ....(hwnd:THandel; var srv,ndb:String):...
var CFORM:TForm1;
begin
Application.Handle:=hwnd;
CFORM:=TForm1.Create(Application.Owner);
 Server.Tex:=srv;
 Name.Text:=ndb;
if Cform.showModal = 458 then
begin
 srv:=Server.Text //TEdit
 ndb:=Name.Text //TEdit
end;
Cform.Free;
end;



> и КАК же ты пытаешься ?

Очень просто:
...
GNC(Application.Handle,Serv,NameDB);
FreeLibrary(hdll);
Cption:=Serv+"\"+NameDB;
....


 
hooky-mars   (2005-09-29 18:58) [5]


> > Cform.showModal = 458

Какая разница что использвать mrOk или 458 (всё равно размер тотже)?


 
hooky-mars   (2005-09-29 19:00) [6]


> вара" vs "аут" - это из другой совсем оперы.
> при том что суть одинакова.

Кстати если кто не понял. Вопрос про вар что в объявлении функции:
....(hwnd:THandel; var srv,ndb:String):...


 
hooky-mars   (2005-09-29 19:02) [7]


> String нельза передавать в DLL, а уж var и подавно...

Про вар точно не уверен, а стринги передовал мильнон раз и ни чего.


 
hooky-mars   (2005-09-29 19:04) [8]

Кстати хотелось бы знать, почему ветка переведена в начинающих? Что я тако спорозил, чтобы посчитать начинающим, и где та грань между начинающим и мастером?



Страницы: 1 вся ветка

Текущий архив: 2005.10.23;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.039 c
14-1128368549
NightLord
2005-10-03 23:42
2005.10.23
Бешенная мышка


1-1128091535
shamansky
2005-09-30 18:45
2005.10.23
RoseDelphiLink-3.2.20041014


14-1128322503
syte_ser78
2005-10-03 10:55
2005.10.23
С чего начать написание клиента для phpbb форума?


1-1127892114
Николяй1
2005-09-28 11:21
2005.10.23
MDI приложение с формами хранящимися в Dll


1-1128065748
SergProger
2005-09-30 11:35
2005.10.23
RAR - архивы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский