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

Types of actual and formal var parameters..

缺席
yeye
一般會員


發表:7
回覆:5
積分:2
註冊:2006-11-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-20 13:32:23 IP:211.76.xxx.xxx 訂閱
最近為了學校的專題在寫一個程式,運用了hinet提供的socket to air元件http://sockettoair.hinet.net/download.htm
我將元件註冊好了,也import到delphi裡面在使用,從ActiveX中將元件拉到畫面上,
可以正常使用S2Air1.StartCon的功能,但是,對於S2Air1.SendMsg的功能卻怎麼也設定不好:
unit Umess_control;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, OleCtrls, SHDocVw, StdCtrls, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, OleServer, S2ACOMLib_TLB;
type
Tmess_control = class(TForm)
Button1: TButton;
BitBtn1: TBitBtn;
IdTCPClient1: TIdTCPClient;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
S2Air1: TS2Air;
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
mess_control: Tmess_control;
implementation
uses UDM;
{$R *.dfm}
procedure Tmess_control.Button1Click(Sender: TObject);
var
ServerIp : string;
ServerPort : string;
UserID : string;
Passwd : string;
ret_code : integer;
msg_tel : string;
msg_string : string;
ret_description : string;
begin
ServerIp := edit1.Text;
ServerPort := edit2.Text;
dm.qrycmd1.Close;
dm.qrycmd1.SQL.Clear;
dm.qrycmd1.SQL.Add('SELECT config.config_value FROM config');
dm.qrycmd1.SQL.Add('Where config.config_name = "Mess_name"');
dm.qrycmd1.Open;
UserID := dm.qrycmd1.Fields[0].Value;
dm.qrycmd1.Close;
dm.qrycmd1.SQL.Clear;
dm.qrycmd1.SQL.Add('SELECT config.config_value FROM config');
dm.qrycmd1.SQL.Add('Where config.config_name = "Mess_pass"');
dm.qrycmd1.Open;
Passwd := dm.qrycmd1.Fields[0].Value;
ret_code := 0;
S2Air1.StartCon(ServerIp, ServerPort, UserID, Passwd, ret_code);
if ret_code = 0 then begin
showmessage('簡訊伺服器連線成功');
msg_tel := '0952xxxxxx';
msg_string :='test';
S2Air1.SendMsg(msg_tel, msg_string, ret_code, ret_description);
s2air1.EndCon;
end else begin
showmessage('簡訊伺服器連線失敗');
end;
end;
會有個:Types ofactual and formal var parametets must be identical,
指向S2Air1.SendMsg(msg_tel, msg_string, ret_code, ret_description);
試了好久,實在不知道那裡出了問題…所以上來請教各位大哥大姐們,
該如何解決這個問題…感謝。
yeye
一般會員


發表:7
回覆:5
積分:2
註冊:2006-11-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-20 15:28:07 IP:211.76.xxx.xxx 訂閱
我發現sendmsg()的格式中,前面兩個參數是const:WideString,
只有最後一個是:var pBVal:WideString
因為在StartCon中,所有的參數都是const:WideString…
會是這裡的問題嗎?如果是,我該怎麼設定呢?
yeye
一般會員


發表:7
回覆:5
積分:2
註冊:2006-11-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-21 02:40:08 IP:211.76.xxx.xxx 訂閱
結果,打工回到家洗個澡忽然開竅,我把ret_description 設定成 widestring,就可以了!真糗..
系統時間:2024-03-29 18:51:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!