Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Вниз

Работа с PChar в DLL   Найти похожие ветки 

 
nikolo   (2002-08-20 11:06) [0]

Всем привет! Кто может на примере показать как реализовать такую функцию в dll? Проблема в том, что делать Result := PChar(S); на нельзя, так как же выкрутиться? Ребята, очень надо...

{Функция в dll}
Function FFF(pParam: PChar): PChar;
Var
S: String;
Begin
S := StrPas(pParam);
.....
действия с S
.....
Result := PChar(S); // это не правильно, а как надо?
End;

{В основной программе}
procedure TForm1.Button1Click(Sender: TObject);
Var SS: String;
Begin
SS := "Hello world!";
Label1.Caption := FFF(PChar(SS));
end;


 
Ученик   (2002-08-20 11:09) [1]

Function FFF(pParam: PChar): PChar;
const
S: String = "";


 
nikolo   (2002-08-20 11:15) [2]

Не понял! Можно подробнее?


 
Skier   (2002-08-20 11:32) [3]

>nikolo
Напиши подробно :
- как экспортируешь функцию из DLL
- как описываешь её в host-приложении
- используешь ли явную загрузку библиотеки ?
если да, то как ты её грузишь...


 
nikolo   (2002-08-20 11:43) [4]

Help!!!


 
nikolo   (2002-08-20 12:02) [5]

> Skier ©, вообще-то не понятно, зачем такие подробности, но если надо, то:
-Экспортирую:
Function FFF(pParam: PChar): PChar; stdcall; external "my_lib.dll" name "FFF";
-Описываю в host-приложении:
Label1.Caption := FFF(PChar(SS));
-Библиотеку гружу явно.


 
Skier   (2002-08-20 12:08) [6]

>nikolo

Либо это полный бред, либо ты путаешь понятия !

В общем так : давай код полностью !




 
Юрий Федоров   (2002-08-20 12:21) [7]

Function FFF(pParam: PChar; ParamSize : Integer) : PChar;
Var
S: String;
begin
...
Result:=StrPLCopy(pParam, s, ParamSize);
end;


 
EVV   (2002-08-20 12:46) [8]

Возможно дело в том, что выделение памяти для строки происходит в DLL.

Передай в DLL ссылку на переменную PChar, под которую выделишь память в программе.

Все это из-за менеджера памяти.



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

Форум: "Основная";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
1-3400
nikolo
2002-08-21 11:05
2002.09.02
TSession в DLL


1-3457
Cem
2002-08-20 20:36
2002.09.02
Как сделать, чтобы компонент рисовал на своем parent.


1-3332
user965
2002-08-21 16:45
2002.09.02
QuickRep


3-3293
Serj27
2002-08-12 11:14
2002.09.02
doa+delphi


7-3645
Alexander
2002-06-21 02:28
2002.09.02
Как мне применить темы Windows XP в окне, которое создано в файле





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