DLL问题(50分)

  • 主题发起人 主题发起人 heilongma
  • 开始时间 开始时间
H

heilongma

Unregistered / Unconfirmed
GUEST, unregistred user!
执行时,报错‘volid pointer operation’
初学动态连接库,按部就班,DLL已经顺利生成,可是调用的时候,出现以上错误!请指教
代码如下:
DLL部分
; ; ; ; ; { MYDLL.DPR}
;library mydll;
uses
; dialogs;
;
function Hobbit (value:integer): string; export;
; ; ; ; ; begin
; ; ; ; ; case value of
; ; ; ; ; 1: result := 'Frodo';
; ; ; ; ; 2: result := 'Samwise';
; ; ; ; ; 3: result := 'Pippin';
; ; ; ; ; 4: result := 'Meriadoc';
; ; ; ; ; else
; ; ; ; ; result := 'Must be an Orc!';
; ; ; ; ; end;
; ; ; ; ; end;
; ; ; ; ;exports
; ; ; ; ;hobbit index 1;
; ; ; ; ; begin
; ; ; ; ; end.

调用部分
unit Unit1;
; ; ; ; ;interface
; ; ; ; ; uses
; ; ; ; ; SysUtils, WinTypes, WinProcs, Messages, Classes,
; ; ; ; ; Graphics, Controls,
; ; ; ; ; Forms, Dialogs, StdCtrls;
; ; ; ; ; type
; ; ; ; ; TForm1 = class(TForm)
; ; ; ; ; Button1: TButton;
; ; ; ; ; Memo1: TMemo;
; ; ; ; ; procedure Button1Click(Sender: TObject);
; ; ; ; ; ;private
; ; ; ; ; { Private declarations }
; ; ; ; ; public
; ; ; ; ; { Public declarations }
; ; ; ; ; end;
; ; ; ; ; var
; ; ; ; ; Form1: TForm1;
; ; ; ; ; implementation
; ; ; ; ; function Hobbit (value:Integer):string; external 'mydll.dll'
; ; ; ; ; index 1;
; ; ; ; ; {$R *.DFM}
; ; ; ; ; procedure TForm1.Button1Click(Sender: TObject);
; ; ; ; ; begin
; ; ; ; ; ; ; Memo1.lines.add(Hobbit(2));
; ; ; ; ; end;
; ; ; ; ; end.
 
在Delphi创建DLL的项目文件时,有一大段注释的话:
请仔细看一下!!
如果在DLL中使用了String
则必须在DLL与调用DLL的Project中的Uses部分引用ShareMem,且必须作为第一个引用的单元!!
 
返回值不能是string,试着用PChar看看。
 

Similar threads

后退
顶部