![]() |
|
|
|
|
#1
|
|||
|
|||
|
Несколько дней парюсь, чтобы подключить это творение к приложению (хоть консольному, хоть не консольному). Что было в плане доступной литературы- прочитала. Совсем простенькие функции подключаю, а ето не работает никак...
library PrDll; Код:
uses
ShareMem,
SysUtils,
Classes;
{$R *.res}
function ChangeString(Str:string):string;stdcall; export;
var i,k:byte;
begin
k:=0;
for i:=1 to (Length(Str)) do
begin
if str[i]=(':') then
inc(k);
if k mod 2=0 then
str[i]:=' ';
end;
for i:=1 to (Length(Str)) do
begin
if str[i]=' ' then
begin
Delete (Str,i,1)
end;
end;
end;
exports ChangeString;
begin
end.Последний раз редактировалось Admin, 14.12.2008 в 17:01. |
|
#2
|
|||
|
|||
|
угу, а кто для начала будет результат возвращать (через Result или имя функции)?
а какую ошибку пишет и в какой строке? |
|
#3
|
|||
|
|||
|
(Application) Запускается, вводишь текст, нажимаешь button, а он выдает:
Project PrFormDll.exe raised exeption class EnvalidPointer with message 'Invalid pointer operation'. Process stopped. Use Step or Run to continue. |
|
#4
|
|||
|
|||
|
Код:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
StrNew:String[255];
implementation
function MyFunc(str:string):string; stdcall;
external 'PrDll.dll' name 'ChangeString';
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
StrNew:=Edit1.Text;
MyFunc(strNew);
Edit2.Text:=StrNew;
end;
end. |
|
#5
|
||||
|
||||
|
Попробуй один из этих вариантов:
В библиотеке убери строку "stdcall" и объяви импортируемую функцию одним из следующих способов, выбери что заработает: Код:
function ChangeString(str:string):string; stdcall; external 'PrDll.dll'; function ChangeString(str:string):string; external 'PrDll.dll'; А если вообще ничего не получится то удали строку "export" Последний раз редактировалось Vayrus, 15.12.2008 в 09:48. |
|
#6
|
||||
|
||||
|
Код:
function ChangeString(str:string):string; far; external 'PrDll.dll'; |