0

我有 Epic Editor,它返回窗口的句柄(请参阅下面 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但我对谈论这种方法的智慧持怀疑态度。我的建议是坚持使用 MFC DLL。

于 2012-04-05T07:51:44.217 回答