大家,我现在在用delphi 调用C++的含有窗体资源的dll,具体细节是这样一来的。C++ dll是厂家提供的,功能是串口收发和非模式对话框显示数据。借口函数有两个,一个是getvalue(),一个是readyToShow(hwnd)。readyToShow(hwnd)是获取窗口句柄启动对话框的。我在delphi下调用该dll,我把this.handle传递给readyToShow(hwnd),结果出错,“afxwin.inl assertion”,不知道是什么原因,烦帮忙解决以下。
调试欢乐多
bool spy(hwnd h); int getvalue();delphi下就简单用了一个form,将当前的句柄传递
spy(self.handle);
在VC中用spy(AfxGetMainWnd ()->m_hWnd);没有出现问题。但是用delphi就出错了。我在delphi跟踪调试,发现进入了dll,不知道是不是这个句柄导致的问题。
C++ dll导出函数
bool spy(hwnd h);
int getvalue();delphi下就简单用了一个form,将当前的句柄传递
spy(self.handle);
在VC中用spy(AfxGetMainWnd ()->m_hWnd);没有出现问题。但是delphi就出错了。我在delphi跟踪调试,发现进入了dll,不知道是不是这个句柄导致的问题。
调试看handle值是否有问题。
另外可以用VC试一下,不使用MFC,传递一个用API创建的窗口是否正常。