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

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

Вызов функций из Dll


Genocid ©   (2004-11-02 21:53:00) 

Такая ситуация: имеется программа и загружаемая ей Dll.

В программе содержутся 2 функции для взаимодействия с библиотекой:
type
 TPlugin = class
 public
   function GetApplication: TApplication; virtual; stdcall;
   function GetText(flag: string): String; virtual; stdcall;
 end;

Так вот, при вызове их из dll первая функция работает абсолютно корректно, а вот вторая первые три вызова выполняется правильно,
на четвертом вызове выводит пустую строку и на пятом вызывает ошибку! =)

Причем даже если имеет следующий вид:
function TPlugin.GetText(flag: string): String;
begin
Result := 'a';
end;

Вроде бы обе функции по виду аналогичны и по большому счету различаются лишь типом результата... Только вот первая работает без пререканий, а вот вторая...
Что это за мистика? 8)


Genocid   (2004-11-03 01:44:00) [1]

Мля, вот подстава! Я с этой проблемой столько мучился, а решение оказалось таким банальным! -) Ладно, спасибо всем.


Kind   (2004-11-02 22:34:00) [2]

Sharemem как сказал Poirot, а лучше PChar вместо String используй (в DLL)


Poirot   (2004-11-02 21:55:00) [3]

Проблема с обработко строк:)
sharemem Тебе поможет:) RTFM Для пущей убедительности или просто поиск по данному форуму:)
Enjoy! :)


Наверх

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