winsock ocx 收到亂碼 但傳送無誤 |
答題得分者是:turboted
|
kirinhuang
一般會員 發表:1 回覆:2 積分:0 註冊:2002-08-30 發送簡訊給我 |
小弟因為專題的關係
題目是做一個類似ICQ的軟體
我是負責server的部份
但是客戶端是由VB開發
(因為同學不會BCB,也不想學)
於是我只好硬上了
把winsock ocx 變成VCL來使用 目前VB to VB 傳送接無誤
但是 VB to BCB方面就有問題
老是收到亂瑪 有問題程式如下
void __fastcall TForm1::Winsock1DataArrival(TObject *Sender,
long bytesTotal)
{
Variant icq_id,aaa;
Winsock1->GetData(icq_id);
aaa=icq_id;
Edit1->Text=VarToStr(aaa);
} 也試過 AnsiString(aaa) Sting(aaa) 都收到亂瑪 因為VB那邊是直接傳送字串過來
但是BCB轉換的VCL在GetData裡面要使用void
也不知道是否為 資料型態 問題 但是傳送資料對方接收無誤
不知道還有沒有轉換字串的函數
但也不確定是哪邊有問題,不知道有高手可以幫忙? 另外一問就是 powersock VCL能跟 winsock ocx 溝通?
------
命犯天煞孤星 |
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
kirinhuang
一般會員 發表:1 回覆:2 積分:0 註冊:2002-08-30 發送簡訊給我 |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
kirinhuang
一般會員 發表:1 回覆:2 積分:0 註冊:2002-08-30 發送簡訊給我 |
小弟已經解決了
把心得整理一下
下面是VB的說明 因為這個是OCX轉過來的元件 object.GetData data, [type,] [maxLen]
data 為自己宣告的變數 單元 描述
object 物件運算式,其值為「適用於」清單中的某個物件。
data 在方法成功地傳回之後,預存擷取的資料。如果沒有足夠的資料用於請求的型態,則 data 將設定成 Empty。
type 選擇性的。擷取的資料型態,詳見「設定值」中所述。
maxLen 選擇性的。在收到位元組陣列或字串時,此長度值指定了所需要的大小。如果沒有指定位元組陣列或字串,則將擷取所有可用的資料。如果提供的資料型態不是位元組陣列和字串的話,則忽略該引數。 type 的設定值是: 描述 常數
Byte vbByte
Integer vbInteger
Long vbLong
Single vbSingle
Double vbDouble
Currency vbCurrency
Date vbDate
Boolean vbBoolean
SCODE vbError
String vbString
Byte Array vbArray vbByte 基本上在VB中可以指定收到的型態
也可先把data宣告成你要的形態 但是這個元件轉成VCL後
Winsock1->GetData(tagVariant * data,tagVariant type ,tagVariant maxLen)
而我在GetData()裡面就不知道怎麼宣告了說
因為變數不可宣告成字串型態
只知道說先宣告 Variant 變數
然後 變數="字串"
Winsock1->GetData(變數)
這樣才不會收到亂碼 不過希望C強的大大可以教一下怎麼宣告好嗎
因為小弟只會VB,而老師又不喜歡VB 命犯天煞孤星
------
命犯天煞孤星 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |