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

指標一問

尚未結案
esbcc
一般會員


發表:18
回覆:17
積分:7
註冊:2005-02-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-17 23:39:26 IP:61.219.xxx.xxx 未訂閱
請教各位高手,在底下的2种宣告,當要把stream1指到stream2時要不要再做其它處理? 因為 *stream2是用byte 作宣告,而*stream1 是用TMemoryStream. 1)TMemoryStream *stream1 = new TMemoryStream; 2)byte *stream2; stream2 = malloc(stream2_length);
m8815010
版主


發表:99
回覆:372
積分:289
註冊:2003-11-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-18 00:14:20 IP:203.73.xxx.xxx 未訂閱
引言: 請教各位高手,在底下的2种宣告,當要把stream1指到stream2時要不要再做其它處理? 因為 *stream2是用byte 作宣告,而*stream1 是用TMemoryStream. 1)TMemoryStream *stream1 = new TMemoryStream; 2)byte *stream2; stream2 = malloc(stream2_length);
esbcc你好: 你所謂的〝指到〞的意思應該就是把 class="code"> void __fastcall TForm1::FormCreate(TObject *Sender) { TMemoryStream *stream1 = new TMemoryStream; byte *stream2=new byte[3]; //隨便給定一些內容 stream2[0]=0x31; stream2[1]=0x32; stream2[2]=0x33; stream1->Position=0; stream1->WriteBuffer((void*)stream2,3); //將stream2的內容給于stream1 delete stream2; delete stream1; } 參著!
esbcc
一般會員


發表:18
回覆:17
積分:7
註冊:2005-02-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-18 12:03:31 IP:61.219.xxx.xxx 未訂閱
m8815010大大的方法可行,stream1->WriteBuffer((void*)stream2,3);這似乎會操作到記憶體的搬移. 是想說直接用指標stream1指到stream2,如此就可以在stream1直接操作,而不用等記憶體的搬移之後再操作. 不好意思沒說清楚.... 發表人 - esbcc 於 2005/02/18 12:06:54
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-02-18 16:17:33 IP:61.226.xxx.xxx 未訂閱
esbcc您好: 你的意思是否為透過(stream2)指標來存取stream1的資料串流,若是請參考以下的程式碼: TMemoryStream *stream1 = new TMemoryStream; stream1->LoadFromFile(FileName); stream1->Position=0; byte *stream2; stream2=(byte*)stream1->Memory; //直接轉型 //其他動作...略 delete stream1;
esbcc
一般會員


發表:18
回覆:17
積分:7
註冊:2005-02-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-02-18 18:10:53 IP:61.219.xxx.xxx 未訂閱
嗯兩位高手 g6101大大的方法我試試看 OK 那 謝謝
系統時間:2024-05-19 10:15:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!