0

ウィンドウへのハンドルを返すEpicEditorがあります(以下のplugin_1のJavaコードを参照)。

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

実際、このハンドルはCWnd *ポインターです。ネイティブplugin_2への直接転送は機能しません。代わりに、呼び出しでMFCをサポートするdllを使用する必要があります

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

MFCなしで​​Delphiでこのコードを書き直すにはどうすればよいですか?ポインタからCWndオブジェクトへのウィンドウハンドルの抽出を意味します。

4

1 に答える 1

3

これをDelphiで安全に書くことはできません。これCWndは、がC ++クラスであり、C++クラスをDelphiコードにインポートできないためです。のメモリレイアウトをリバースエンジニアリングできると思いますが、CWndそのアプローチを話すことの知恵には非常に懐疑的です。私の推奨事項は、MFCDLLを使用することです。

于 2012-04-05T07:51:44.217 に答える