線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:762
推到 Plurk!
推到 Facebook!

请教,各位大哥怎么 show 出 var 型变量的值啊?谢谢!

尚未結案
lsh998
中階會員


發表:163
回覆:138
積分:60
註冊:2005-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-24 10:29:28 IP:219.128.xxx.xxx 未訂閱
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses unit2; {$R *.dfm} procedure TForm1.Button4Click(Sender: TObject); var com:COMDATA; begin com.comport:=1; com.Address:=0; showmessage(inttostr(u_GetVer(com)));//这里是显示出函数返回值 现在我要返回 ReData:array[0..DATA_MAX-1] of byte 的值, showmessage(com.ReData)//这样写不正确啊~~我要,怎么写语句啊? end; end. unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; const DATA_MAX = 100; type COMDATA=packed record comport:byte; Address:byte; ReData:array[0..DATA_MAX-1] of byte; end; function u_GetVer(var comdata:COMDATA):smallint;stdcall; implementation function u_GetVer(var comdata:COMDATA):smallint;external 'GSHW.dll'; end. //////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// 还补充两点: COMDATA结构: ComPort 通信串口号 1 - 255 Address 设备地址 0 - 255 ReData 函数输出值 (100 Bytes) 在 c 语言中是在有定义的: typedef struct _COMDATA{ unsigned char ComPort; unsigned char Address; unsigned char ReData[DATA_MAX]; }COMDATA; 我在 delphi 中这样调用: procedure TForm1.Button4Click(Sender: TObject); var com:COMDATA; begin com.comport:=1; com.Address:=0; showmessage(inttostr(u_GetVer(com)));//这里是显示出函数返回值 end; end. 可是 show 出来的结果是:1 ,1对应的输入参数错误 请教各位大哥: com.comport:=1; com.Address:=0; 错了吗? 是不是 ReData 没有初始化? 谢谢!
lsh998
中階會員


發表:163
回覆:138
積分:60
註冊:2005-01-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-24 17:00:40 IP:219.128.xxx.xxx 未訂閱
各位老大顶啊! 谢谢!
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-25 06:01:16 IP:61.64.xxx.xxx 未訂閱
目前任何語言沒有這樣的能力 必須你自己一個一個秀出來    showmessage(com.ReData)//这样写不正确啊~~我要,怎么写语句啊?  必須是這樣
for i := 0 to DATA_MAX-1 do
 showmessage(inttostr(com.ReData[i])); 
發表人 - syntax 於 2005/03/25 06:10:28
lsh998
中階會員


發表:163
回覆:138
積分:60
註冊:2005-01-07

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-25 08:15:18 IP:219.128.xxx.xxx 未訂閱
非常感谢 syntax 大哥! 请再帮看看 为什么我输入的参数不对啊? 谢谢!
lsh998
中階會員


發表:163
回覆:138
積分:60
註冊:2005-01-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-26 09:50:43 IP:219.128.xxx.xxx 未訂閱
大哥,在 C 语言中有: Public Const DATA_MAX = 100 typedef struct _COMDATA{ unsigned char ComPort; unsigned char Address; unsigned char ReData[DATA_MAX]; }COMDATA; 在 DELPHI 中怎么表示啊? 我这样表示,是不是写错了啊? const DATA_MAX = 100; type COMDATA=packed record comport:byte; Address:byte; ReData:array[0..DATA_MAX-1] of byte; end; 谢谢!
系統時間:2024-07-01 5:25:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!