DLL 的 Handle 問題 |
尚未結案
|
BGman
初階會員 發表:28 回覆:85 積分:42 註冊:2003-01-10 發送簡訊給我 |
請問一下,以下是BCB深度歷險,我的控制台範例程式碼
這一個專案設定輸出的附檔名為 CPL (控制台用的DLL)
THandle hCPL = (THandle)Handle; // Conform to type checking
請問一下這一個 Handle 指的是哪一個 Handle?
1.在輸出為 EXE 的一般 Application ,如果在 Form1 中出現 Handle
不知應該指的是 Form1->Handle 偷懶的寫法,還是 Application->Handle呢?
2.但是,如果在DLL ,這個Handle 指的是誰的 Handle 呢?
void __fastcall TForm1::TrvCPLDblClick(TObject *Sender) { HINSTANCE hLib; TCPLApplet CPLProc; // 指向 CPlApplet 函式的函式指標 TTreeNode* ANode; TCPLInfo CPLInfo; // 用來取得元件資訊的結構 ANode = TrvCPL->Selected; if ( ANode == NULL || ANode->Level != 1 ) return; // 載入 CPL 檔, CPL 檔名即為元件節點的父節點標題 hLib = LoadLibrary(ANode->Parent->Text.c_str()); if (!hLib) { ShowMessage("無法載入 " ANode->Parent->Text); return; } // 取得 CPlApplet 函式位址 CPLProc = (TCPLApplet)GetProcAddress(hLib, "CPlApplet"); if (CPLProc) { THandle hCPL = (THandle)Handle; // Conform to type checking // 啟動元件, 元件編號即是此節點的次序 (ANode.Index) CPLProc(hCPL, CPL_INIT, 0, 0); memset(&CPLInfo, 0, sizeof(TCPLInfo)); CPLProc(hCPL, CPL_INQUIRE, ANode->Index, (Longint)&CPLInfo); CPLProc(hCPL, CPL_DBLCLK, ANode->Index, CPLInfo.lData); CPLProc(hCPL, CPL_STOP, ANode->Index, CPLInfo.lData); CPLProc(hCPL, CPL_EXIT, 0, 0); } FreeLibrary(hLib); // 別放了釋放 CPL 檔 } |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
1. 如果是 EXE 應該是用 Application->Handle
2. 如果是 DLL 應該是在 DLL 主程式
BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved );中的 hinstDLL 的值,所以,您必須在您的 DLL 主程式中把 hinstDLL 的數值存下並傳給需要的表單或函式。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://big5.to/吃軟也吃硬 http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
關於 DLL 可以參考: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/dllmain.asp 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://big5.to/吃軟也吃硬 http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
BGman
初階會員 發表:28 回覆:85 積分:42 註冊:2003-01-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |