在Dll文件中引用OBJ文件,怎样写?

刘大黑 2002-12-31 04:44:25
在Dll文件中引用OBJ文件,写法正确么?
函数的声明在'mhdelphi.obj',编译可以通过调用提示:'mhdelphi.obj'不是有效的windows image文件
请问任何写才正确
library USBDog;
uses
SysUtils,Classes;

var
//全局变量
DogCascade: integer;
DogAddr: integer;
DogBytes: integer;
DogPassword: longint;
DogResult: Longword;
DogData: ^byte;
NewPassword:longint;

//引用'mhdelphi.obj';中的函数

function DogCheck: LongInt;external;
{$L mhdelphi.obj}

{$R *.res}
function PlusSum(X,Y:Integer):Integer;StdCall;
begin
Result:=X+Y ;
end;
function Minus(X,Y:Integer):Integer;StdCall;
begin
Result:=X-Y ;
end;

Exports
PlusSum index 1,
Minus index 2,
DogCheck index 3;
begin


end.
...全文
105 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘大黑 2003-01-02
  • 打赏
  • 举报
回复
前面的问题我在加入引用windows后解决了,但是无法将
Exports
DogCheck index 2;
出错,因为引用的DogCheck 来自于OBJ文件,类系不支持StdCall,如何解决

library USBDog;

uses
SysUtils,Classes,windows;
var
//全局变量
DogCascade: integer;
DogAddr: integer;
DogBytes: integer;
DogPassword: longint;
DogResult: Longword;
DogData: ^byte;
NewPassword:longint;
//引用'mhdelphi.obj';中的函数

function DogCheck: LongInt; external;
{$L mhdelphi.obj}

{$R *.res}

Exports
DogCheck index 2;
begin
end.
lxpbuaa 2002-12-31
  • 打赏
  • 举报
回复
obj是c写的吗,如果是,将
function DogCheck: LongInt;external;
{$L mhdelphi.obj}
改为:
{$L mhdelphi.obj}
function DogCheck: LongInt;cdecl(或者stdcall);external;
看看

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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