我有Epic Editor,它返回窗口的句柄(参见下面的plugin_1中的Java代码):
int handle = com.arbortext.epic.Application.getActiveWindow().getNativeHandle();
实际上,这个句柄是CWnd *
指针。它直接转移到本机plugin_2不起作用。相反,我们必须通过调用
HWND __stdcall GetHandle(CWnd *cp)
{
HWND hWnd = cp->GetSafeHwnd();
return hWnd;
}
如何在没有MFC的情况下在Delphi中重写此代码?我的意思是从指向CWnd
对象的指针中提取窗口句柄。
答案 0 :(得分:3)
你不能以安全的方式在Delphi中写这个。那是因为CWnd
是一个C ++类,你不能将C ++类导入Delphi代码。我想你可以对CWnd
的内存布局进行逆向工程,但我对谈论这种方法的智慧持怀疑态度。我的建议是坚持使用MFC DLL。