VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 829|回复: 4

结构体参数怎么赋值

[复制链接]

4

主题

12

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-3-4 15:30:01 | 显示全部楼层 |阅读模式
unit Ukq;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TParams = Record
    Port: String[3];
    CtrlID: String[3];                        //设备号,[1~127]
    Params: string[250];
  end ;

  pparams=^TParams;

var
  Form1: TForm1;


implementation

{$R *.dfm}
function OpenComm(var lParam:pParams;sType:Integer): Integer;stdcall; external 'CM60.dll' ;
function CloseComm(var lParam:pParams;sType:Integer): Integer;stdcall; external 'CM60.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
  p:pparams;
  sType, ret: Integer;
begin
  sType :=2100;
  p.Port :='001';
  p.CtrlID :='001';

  ret := OpenComm(p,sType);
    showmessage(inttostr(ret));


  ret := CloseComm(p, sType);
   p.CtrlID :='';
    showmessage(inttostr(ret));

end;
end.

编辑成功,运行的时候 p.Port :='001';
  p.CtrlID :='001';出现存取地址错误
回复

使用道具 举报

4

主题

12

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
 楼主| 发表于 2020-5-17 19:45:01 | 显示全部楼层
不关dll调用的事,我注释掉调用语句也是一样的
回复

使用道具 举报

0

主题

25

帖子

18.00

积分

新手上路

Rank: 1

积分
18.00
发表于 2020-5-18 14:00:01 | 显示全部楼层
New(p)
回复

使用道具 举报

0

主题

14

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-5-20 17:15:01 | 显示全部楼层
补充  :)



New( p );
.....
Dispose( p );




回复

使用道具 举报

0

主题

40

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-5-21 19:00:01 | 显示全部楼层
恭喜呀,问题应该解决了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表