2012-04-05 62 views
0

我有史詩編輯器返回的句柄窗口(見下方plugin_1 Java代碼):如何在Delphi中獲得CWnd對象的窗口句柄?

int handle = com.arbortext.epic.Application.getActiveWindow().getNativeHandle(); 

事實上,這種手柄CWnd *指針。它直接傳輸到本地插件2不起作用。相反,我們必須使用dll與MFC支持呼叫

HWND __stdcall GetHandle(CWnd *cp) 
{ 
HWND hWnd = cp->GetSafeHwnd(); 
return hWnd; 
} 

我怎樣才能重寫這個代碼在沒有MFC的Delphi?我的意思是從指針提取窗口句柄到CWnd對象。

+0

從VC++以外的任何語言使用的DLL中導出MFC類類型對他們是非常短視的。 – 2012-04-05 22:25:39

回答

3

你不能用安全的方式在Delphi中編寫它。這是因爲CWnd是一個C++類,您不能將C++類導入到Delphi代碼中。我想你可以對CWnd的內存佈局進行逆向工程,但我會對這種方法的智慧表示懷疑。我的建議是堅持使用MFC DLL。