S
songhb
Unregistered / Unconfirmed
GUEST, unregistred user!
一个简单的dll,请大家看看错在何处。
dll部分:
library mydll;
uuses
SysUtils,
StdCtrls,
Classes;
function myfunc(s: string): string; export; stdcall;
begin
result := s;
end;
exports
myfunc;
{$R *.RES}
begin
end.
调用部分的.pas:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function myfunc(s: string): string; stdcall; external 'mydll.dll';
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(myfunc('asfds00000'));
end;
end.
编译没错误,执行时在调用结束后出现'Invalid pointer operation.'错误。请问该如何解决。
是不是在创建dll时不能使用这种引用方式,而一定要使用一个unit单元?
dll部分:
library mydll;
uuses
SysUtils,
StdCtrls,
Classes;
function myfunc(s: string): string; export; stdcall;
begin
result := s;
end;
exports
myfunc;
{$R *.RES}
begin
end.
调用部分的.pas:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
function myfunc(s: string): string; stdcall; external 'mydll.dll';
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(myfunc('asfds00000'));
end;
end.
编译没错误,执行时在调用结束后出现'Invalid pointer operation.'错误。请问该如何解决。
是不是在创建dll时不能使用这种引用方式,而一定要使用一个unit单元?