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

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

Проблема с dll


Страницы:   1 2

Ivanov ©   (2006-09-11 00:37:00) 

Мастера, подскажите: пытаюсь передать из dll переменную типа string, а в результате - Access Violation. Кто знает в чем причина, подскажите.

В библиотеке значится следующее:
....
function Text1(c: String): String; stdcall;
begin
c := 'first';
Result := c;
end;
....
exports
....
Text1;

А в исполнимом файле:
.....
TText = function(c: String): string; stdcall;
....
Text1: TText;
....
var
i: String;
....
a := LoadLibrary('1.DLL');
if a <> 0 then
 begin
 @Text1 := GetProcAddress(a, 'Text1');
   if @Text1 <> nil then
   i := Text1(c);
....
Компилируется без проблем, а при запуске "Access Violation".


Palladin   (2006-09-11 10:43:00) [21]

zamtmn сказал нельзя, значит zamtmn'у нельзя... остальным можно :)


Ega23   (2006-09-11 10:09:00) [22]


> а какая разница pchar или string, всеравно нельзя изменять
> в exe pchar созданый в dll и наоборот.


Интересное кино... Вот всё время можно было, а сегодня, в честь пятилетней годовщины терактов стало нельзя.


zamtmn   (2006-09-11 08:09:00) [23]

лучше shortstring или пересмотреть архитектуру чтоб выделенье/перераспределенье памяти происходило в одном модуле


zamtmn   (2006-09-11 08:06:00) [24]

а какая разница pchar или string, всеравно нельзя изменять в exe pchar созданый в dll и наоборот.


PSPF2003   (2006-09-11 08:02:00) [25]

Присоединяюсь к [2]


Германн   (2006-09-11 00:57:00) [26]

И всё-таки лучше в dll использовать роднойPChar, imho.


Юрий Зотов   (2006-09-11 00:41:00) [27]

ShareMem.

А комментарии читать надо. В Borland'е все же не дураки сидят, просто так не влепили бы.


Страницы:   1 2

Наверх

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