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

CALLBACK FrameCallBack内如何用到 global的TMemoryStream?

尚未結案
esbcc
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-04-02 14:45:46 IP:61.219.xxx.xxx 未訂閱
會有呼叫不到的情形 [C++ Error] Unit1.cpp(1): Unable to invoke Code Completion due to errors in source code
 
#include "vcl.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TMemoryStream *a, *b;
.
.
.    void __fastcall TForm1::Button1Click(TObject *Sender)
{
a = new TMemoryStream;
b = new TMemoryStream;
.
.
.
   
}    LRESULT CALLBACK FrameCallBack( HWND hCapWnd, Longint lpvhdr )
{
extern TMemoryStream *a,*b;
.
.
.
.
CopyMemory(a->Memory,b->Memory,Size);//會呼叫不到    }
請指教thanks
yyu10
中階會員


發表:9
回覆:99
積分:96
註冊:2005-02-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-04-02 15:00:50 IP:220.244.xxx.xxx 未訂閱
如果"TMemoryStream *a, *b;"和"LRESULT CALLBACK FrameCallBack"在同一个Cpp中, 试试将"extern TMemoryStream *a,*b;"这一行去掉. 用extern是告诉Compiler到其它Cpp中去找变数的定义, 比如,"TMemoryStream *a, *b;"在a.cpp中, 而"LRESULT CALLBACK FrameCallBack"在b.cpp中. _________________________ Programming is a passion
esbcc
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-04-02 15:56:56 IP:61.219.xxx.xxx 未訂閱
TMemoryStream *a, *b;"和"LRESULT CALLBACK FrameCallBack"在同一个Cpp中 extern TMemoryStream *a,*b;是原本沒有的,在叫用不到的情形下才想試一試,結果也是呼叫不到. 這個 CALLBACK FrameCallBack 似乎是要有方法才能和外界溝通, 在下是有想到另一方法, 先宣告一個全區域變數 bool CallBackOK=false; LRESULT CALLBACK FrameCallBack( HWND hCapWnd, Longint lpvhdr ) { . . CallBackOK=false; capSetCallbackOnFrame (hCapWnd, &FrameCallBack); CallBackOK=true; while(CallBackOK==true) { Application->ProcessMessages(); CopyMemory(a->Memory,b->Memory,Size);} } 是這樣可行嗎? Or..... 大大可否指點一二... 發表人 - esbcc 於 2005/04/02 16:00:25
系統時間:2024-05-19 17:11:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!