class中內含的String 變數在編譯成功,而執行回傳值有誤 |
缺席
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
請問各位 我在 class中, 有string 及 short..等變數, 我在compiler是正常, 但執行時, 回傳值是不對的. 有在class中show值, 檢查是正確的. 但我把class的 string Body 和 short Type 位置對調就正常了...是string 在編譯會影響嗎? [code cpp] //main.cpp #include "header.h" void __fastcall TMainForm::SSocketRead(TObject *Sender, TCustomWinSocket *Socket) { THeader* hpr = new THeader(); switch(hpr->Type) { case 1: ShowMessage("1"); break; case 2: ShowMessage("2"); break; default: ShowMessage("unknow"); //無法得到正確的type break; } } //THeader 的h檔 #pragma once using namespace std; class THeader { public: char Category[3]; char From; char To; char Interface[3]; unsigned short BodyLen; string Body; //存放內容 short Type; //內容型態 time_t ArriveTime; //接收時間 int key; int packetCount; private: bool ChkFrom(char ch); bool ChkInf(const char* inf); public: Header(void); ~Header(void); int Paser(string cmd); //Parser Command }; [/code] |
salo0610
高階會員 發表:42 回覆:120 積分:107 註冊:2003-02-18 發送簡訊給我 |
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
不好意思我少了一行! 但我有做初始動作. 目前感覺是直接用 string 型態, bcb編譯成功, 但執行起來都不正常存取. 因這個class是舊有的code,[在vc是正常的] 其字串變數 都是用string ; 而bcb 是用ansistring , 和這有關係嗎?
就讀取 hpr->Type ??? 大大是不是沒有初使化 Type 的值??? |
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
Reignson
一般會員 發表:3 回覆:11 積分:12 註冊:2005-01-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |