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

Вниз

Обработка переменной String в DLL   Найти похожие ветки 

 
Zn   (2002-11-13 10:21) [0]

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


 
MBo ©   (2002-11-13 10:23) [1]

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


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

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


 
e-mike ©   (2002-11-13 10:35) [3]

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


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

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


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

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


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

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


 
Zn   (2002-11-13 13:04) [7]

Ув. мастера теперь подскажите, пожалуйста, как в 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;


 
stone ©   (2002-11-13 13:17) [8]

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


 
e-mike ©   (2002-11-13 13:21) [9]

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


 
e-mike ©   (2002-11-13 13:26) [10]

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

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

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

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



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

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

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

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

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


и так далее


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

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


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

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


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

Благодарю!



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
14-82994
iZEN
2002-11-07 13:39
2002.11.25
Лёгкий Офис


7-83021
Infinity2
2002-09-21 02:26
2002.11.25
Как в XP выключить компьютер и монитор ?


1-82739
Zike
2002-11-15 11:01
2002.11.25
Получение нескольких Результатов функции


1-82716
AL2OO2
2002-11-14 19:43
2002.11.25
Как задать массив точек?


7-83019
goldzoloto
2002-09-21 13:46
2002.11.25
SOS SOS SOS .ЛЮДИ ПОДСКАЖИТЕ КАК РАБОТАТЬ С СЕТЕВОЙ КАРТОЙ