需要在public中声明一个外部可调用函数,函数的参数类型是我自定义的,在哪个地方定义这个类型呢

ustczjr 2012-03-23 01:16:44
unit BootMain;
interface
uses
{此处省略}

type
{此处省略}
private
{ Private declarations }
public
{ Public declarations }
type TVCI_CAN_OBJ = record
ID : integer;
TimeStamp: integer;
TimeFlag: byte;
SendType:BYTE ;
RemoteFlag: BYTE;
ExternFlag: BYTE;
DataLen: BYTE;
Data: array[0..7] of Byte;
Reserved:array[0..2] of Byte;
end;
pVCI_CAN_OBJ=^TVCI_CAN_OBJ;

function FD_Transmit(DevType:dword;DevIndex:dword; CANindex:dword; psend:pVCI_CAN_OBJ;len:integer):integer ;stdcall;
external 'CANApplication.dll'; //返回实际发送的帧数
end;

在另一个unit中调用函数FD_Transmit,但是声明不成功,
这样写就报错:[ERROR]‘END’ expected but 'TYPE' found
[ERROR]'IMPLEMENTATION' expected but ';' found
[ERROR]'.' expected but 'IMPLEMENTATION' found
不知道如何解决,请各位指教!
...全文
185 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ustczjr 2012-03-27
  • 打赏
  • 举报
回复
谢谢各位的帮助,问题解决了~
程晨c 2012-03-26
  • 打赏
  • 举报
回复
在另外一个unit中声明,然后引用这个unit
ustczjr 2012-03-26
  • 打赏
  • 举报
回复
感谢各位的回复,本人初接触delphi,很多东西都不懂,还望大家给与指导。

FD_Transmit这个函数有一个参数类型是pVCI_CAN_OBJ,是我自己定义的类型,不知道怎么声明,能够在别的unit中调用这个函数。

  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ustczjr 的回复:]

感谢各位的回复,本人初接触delphi,很多东西都不懂,还望大家给与指导。

FD_Transmit这个函数有一个参数类型是pVCI_CAN_OBJ,是我自己定义的类型,不知道怎么声明,能够在别的unit中调用这个函数。
[/Quote]

2楼那样就可以了。
使用的时候在程序中uses BootMain;
一剑飘雪 2012-03-23
  • 打赏
  • 举报
回复
楼主还是看看最基本的语法吧
  • 打赏
  • 举报
回复
只是调用一下DLL中的函数,怎么把声明放到类定义中了呢。

unit BootMain;
interface
uses
{此处省略}

type
TVCI_CAN_OBJ = record
ID : integer;
TimeStamp: integer;
TimeFlag: byte;
SendType:BYTE ;
RemoteFlag: BYTE;
ExternFlag: BYTE;
DataLen: BYTE;
Data: array[0..7] of Byte;
Reserved:array[0..2] of Byte;
end;
pVCI_CAN_OBJ=^TVCI_CAN_OBJ;

function FD_Transmit(DevType:dword;DevIndex:dword; CANindex:dword;
psend:pVCI_CAN_OBJ;len:integer):integer ;stdcall;
external 'CANApplication.dll'; //返回实际发送的帧数

bdmh 2012-03-23
  • 打赏
  • 举报
回复
你这个还是累成员函数,需要通过类实例调用,你应该声明一个类级函数

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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