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

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

Обработка переменной String в DLL [D5, Win95/98]


Zn ©   (2002-11-13 10:21:00) 

Ув. мастера! Объясните, почему функция, работающая с переменными String, работает в теле программы, но выдаёт ошибку "invalid pointer operation" при попытке вызвать её из DLL.
Может, вместо String нужно использовать PChar?


Zn   (2002-11-13 14:04:00) [1]

Благодарю!


e-mike   (2002-11-13 14:03:00) [2]

Автоматически


Zn   (2002-11-13 14:02:00) [3]

А может цикл всё-таки до length, чтобы включит символ #0, или он добавляется автоматически?


e-mike   (2002-11-13 13:27:00) [4]

>> и цикл начинай с нуля

и заканчивай length-1

кроме того замени
"a": Result:=Result+"A";
на

"a": Result:=strcopy(Result,pchar("A"));


и так далее


e-mike   (2002-11-13 13:26:00) [5]

>> и цикл начинай с нуля

и заканчивай length-1

кроме того замени
"a": Result:=Result+"A";
на

"a": Result:=strcopy(Result,pchar("A"));


e-mike   (2002-11-13 13:21:00) [6]

Замени в объявлении функции String на PChar
и цикл начинай с нуля


stone   (2002-11-13 13:17:00) [7]

http://delphi.mastak.ru/articles/usedll/index.html


Zn   (2002-11-13 13:04:00) [8]

Ув. мастера теперь подскажите, пожалуйста, как в DLL организовать передачу параметров и возвращение значения через PChar, например, такой функции:

function U866To1251(InpStr: String): String;
var i: Word;
begin
Result:="";
for i:=1 to Length(InpStr) do
case InpStr[i] of
"a": Result:=Result+"A";
"b": Result:=Result+"B";
"c": Result:=Result+"C";
else Result:=Result+InpStr[i];
end;
end;


Zn   (2002-11-13 10:46:00) [9]

Понял, благодарю!


Внук   (2002-11-13 10:42:00) [10]

Воистину, господа, читайте хотя бы собственные исходники :))


Fredericco   (2002-11-13 10:41:00) [11]

Используй PCharили WideString.


e-mike   (2002-11-13 10:35:00) [12]

Создай проект DLL приложения, и почитай, что она пишет


Zn   (2002-11-13 10:26:00) [13]

Ничего не пишет. Функция элементарная, использует только SysUtils и Classes.


MBo   (2002-11-13 10:23:00) [14]

читал, что delphi пишет при создании новой DLL про uses Sharemem?


Наверх

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