一个动态链接库DLL文件的问题?

linlky 2003-08-12 12:30:32
我写了一个DLL文件,里面有一个函数我用的开发软件是DELPHI6。
当DLL文件只有一个函数时DELPHI可以调用一切正常,当我在DLL文件里在添加一个函数时就出错不能调用,出错信息如下:
"profect1.exe-损坏的图象 //信息框的标头
应用程序或DLL E:\DELPHIDLL\DELL.DLL为无效的WINDOWS映像。请再检测一遍你的安装盘。”
我听说要在DELPHI6里注册一下DLL文件才能使用,我比较疑惑的问题是:“为什么有时调用DLL文件中的一个函数可以有时不行又出现上面的出错信息。”
总之,我要如何操作和使用DLL文件在DELPHI6里。

代码:

library Delphi;

uses

SysUtils,

Classes;

function TestDll(i:integer;ii:integer):integer;stdcall;
var
C:integer;
begin
C:=i*ii;
Result:=C;

end;


exports

TestDll;



begin

end.

调用代码:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

function TestDll(i:integer;ii:integer):integer;stdcall;

external ’Delphi.dll’;

procedure TForm1.Button1Click(Sender: TObject);

begin

Edit1.Text:=IntToStr(TestDll(1,2));

end;



end.

只要调用就出现下面的信息:

"profect1.exe-损坏的图象 //信息框的标头
应用程序或DLL E:\DELPHIDLL\DELL.DLL为无效的WINDOWS映像。请再检测一遍你的安装盘。”


请各位程序员帮我解决一下这个问题,多谢!
...全文
40 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pankun 2003-08-12
  • 打赏
  • 举报
回复
看DLL的代码没什么问题啊,你试试用LoadLibrary和GetProcAddress动态调用DLL函数看看。
数字蛋糕 2003-08-12
  • 打赏
  • 举报
回复
偶写DLL从来不注册……COM除外。
kkk2000 2003-08-12
  • 打赏
  • 举报
回复
你的代码没有任何问题呀,我已经试过了。
操作系统:win2k server+sp4
Delphi6.0
请检查你的程序是否引用了E:\DELPHIDLL\DELL.DLL中的函数。
检查你编写的Dll库在磁盘上是否是唯一的。
nhdj 2003-08-12
  • 打赏
  • 举报
回复
看不出有啥问题,你用delphi5 从做一遍试试

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧