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

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

Как правильно передать строку в DLL или правильно ее обработать?


Geks ©   (2002-02-19 12:31:00) 

Нижеуказанная DLL вызывается в VisualFoxPro7
DECLARE Integer XFunc IN Path+"Xshell.dll" String @str
nRes = XFunc(Val) либо
nRes = XFunc(@Val)


На данном этапе мне нужно просто получить сообщение - значение DirPath,
но вместо например: "c:\somefolder" получается абракадабра в обоих случаях, хоть и разная

library Xshell;

uses
SysUtils, Classes, Windows, Dialogs;

{$R *.res}

function XFunc(DirPath: PChar): Integer;
var
ff: PChar;
begin
ff:= @DirPath; //если просто передать ff:= DirPath - Fox говорит ошибка пр вызове DLL
ShowMessage(ff);
Result:= 0;
end;

exports
XFunc;

begin
end.


Подскажите, пожалуйста, каким образом можно получить реальное значение DirPath


Geks   (2002-02-19 22:02:00) [1]

Вот что значит опыт!
StdCall на самом деле решила все праблемы.
СПАСИБО.


Юрий Зотов   (2002-02-19 20:56:00) [2]

> каким образом можно получить реальное значение DirPath

Если из VisualFoxPro передается правильное значение, значит оно и в DLL приходит правильное, что тут еще получать? А вот stdcall, вероятно, не помешает.

function XFunc(DirPath: PChar): Integer; stdcall;
begin
ShowMessage(String(DirPath));
Result:= 0;
end;


Geks   (2002-02-19 20:25:00) [3]

вообще-то по смыслу передается ссылка на строку, так вот вопрос в том как эту ссылку обработать и получить значение на которое она сылается?
Ну МАСТЕРА Delphi"й это ж ваш хлеб!!!


Geks   (2002-02-19 18:47:00) [4]

Что? Ни каких мыслей?


Наверх

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