Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизПомогите с загрузкой функции из DLL Найти похожие ветки
← →
_Garry © (2004-07-30 10:57) [0]library Mydll;
uses
Windows,SysUtils,
Classes;
function AddSpace(S:String;FullDl:Integer;
Fill:String):String; stdcall;
var
i:Integer;
begin
Result:="";
for i:=0 to (FullDl-Length(S)) do
S:=S+Fill;
Result:=S;
end;
exports
AddSpace;
begin
end.
unit Unit1;
.......
implementation
function AddSpace(S:String;FullDl:Integer;
Fill:String):String;stdcall;external "mydll.dll";
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.Caption:=AddSpace(Edit1.Text,20," +");
end;
Вот в таком виде ругается "Invalid pointer operation", но если продолжить выполнение, функция отрабатывается. Динамическая загрузка тоже выдаёт ошибку.
Заранее благодарю.
← →
Reindeer Moss Eater © (2004-07-30 11:00) [1]Прочитай внимательно комментарий, автоматически вставляемый IDE в файл проекта DLL
← →
TUser © (2004-07-30 11:01) [2]uses ShareMem
← →
Sancho © (2004-07-30 11:02) [3]Если ты передаешь строки в библиотеку, то надо использовать либо тип PChar, либо подключать модуль ShareMem (он должен быть первым в списке uses как библиотеки, так и приложения ее вызывающего). Проблема в том, что у библиотеки и приложения разные менеджеры памяти.
← →
_Garry © (2004-07-30 14:01) [4]Спасибо большое, джентельмены, помогло.
Удачи всем!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.032 c