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




Вниз

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


Geks   (2002-02-19 12:31) [0]

Нижеуказанная 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 18:47) [1]

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



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

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



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

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

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

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



Geks   (2002-02-19 22:02) [4]

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




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




Наверх





Память: 0.72 MB
Время: 0.049 c
7-19355           bios_i_ego            2001-12-01 13:06  2002.03.07  
В Паскале было Port


3-19075           DmitryPV              2002-02-08 15:54  2002.03.07  
Как удалить запись на которой установлен курсор в DBGrid?


1-19212           kserg@ukr.net         2002-02-19 11:28  2002.03.07  
Как установить новый компонент?


3-19113           vopros                2002-02-11 10:18  2002.03.07  
Как сделать post в базе когда запись она находиться в режиме Редактирвания?


1-19229           ded_di                2002-02-18 12:47  2002.03.07  
Вопрос по OnDrawCell