CALLBACK FrameCallBack内如何用到 global的TMemoryStream? |
尚未結案
|
esbcc
一般會員 發表:18 回覆:17 積分:7 註冊:2005-02-11 發送簡訊給我 |
會有呼叫不到的情形
[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 發送簡訊給我 |
如果"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 發送簡訊給我 |
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
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |