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

請教有關MemoryStream與unsigned char間的轉換問題

答題得分者是:aquarius
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-24 11:01:23 IP:61.220.xxx.xxx 未訂閱
敝人對C的結構不是很熟,現在想將MemoryStream轉換成unsigned char以便做為呼中副程式時的引數內容,但是我試的時候會出現錯誤,請大家幫幫忙… 謝謝大家!    我的程式又臭又長,僅拿出相關的部分請大家幫忙看看…        LPBYTE pp;     DWORD dwLength;     TMemoryStream *file= new TMemoryStream;     AnsiString filename;     int index;     LPBYTE pFrame;        for (index=0;index<10;index ) { filename.printf("d",index); filename = "c:\\" filename ".jpg"; file->LoadFromFile(filename); file->Position = 0; CopyMemory(pFrame,file,jpgfileSize); Function1(argument1,pFrame,file->Size);//此部分不方便寫出來,後面兩個引數為(,LPBYTE lpData,DWORD size) } GlobalFree(pFrame); delete jpg; 發表人 - danielj 於 2003/07/24 11:03:33
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-24 12:04:37 IP:211.23.xxx.xxx 未訂閱
引言: 敝人對C的結構不是很熟,現在想將MemoryStream轉換成unsigned char以便做為呼中副程式時的引數內容,但是我試的時候會出現錯誤,請大家幫幫忙… 謝謝大家! 我的程式又臭又長,僅拿出相關的部分請大家幫忙看看…
 
    LPBYTE pp;
    DWORD dwLength;
    TMemoryStream *file= new TMemoryStream;
    AnsiString filename;
    int index;
    LPBYTE pFrame;   <<<<<<< 這是指標型態        for (index=0;index<10;index  )
    {
        filename.printf("d",index);
        filename = "c:\\"   filename   ".jpg";
        file->LoadFromFile(filename);
        file->Position = 0;
        CopyMemory(pFrame,file,jpgfileSize);   <<<<<<< 未配置空間, 就將值寫入, 這樣當然會錯呀!!            Function1(argument1,pFrame,file->Size);//此部分不方便寫出來,後面兩個引數為(,LPBYTE lpData,DWORD size)
    }        GlobalFree(pFrame);
    delete jpg;    
先配置足夠的記憶體空間給 pFrame, 或是用 (LPBYTE)file->Memory 轉型. 這樣應該就不會錯了!! ...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
danielj
初階會員


發表:65
回覆:135
積分:40
註冊:2003-06-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-24 14:18:35 IP:61.220.xxx.xxx 未訂閱
多謝aquarius大哥的回答,我依照您的建議將程式改成下面的樣子就可以正常運作了!        LPBYTE pp;     DWORD dwLength;     TMemoryStream *file= new TMemoryStream;     AnsiString filename;     int index;        for (index=0;index<10;index ) { filename.printf("d",index); filename = "c:\\" filename ".jpg"; file->LoadFromFile(filename); file->Position = 0; Function1(argument1,(LPBYTE)flie->Memory,file->Size } delete jpg;
系統時間:2024-07-01 3:43:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!