DLL获得主界面的hwnd的有关问题
DLL获得主界面的hwnd的问题
DLL中这么获得:
HWND h_mainwnd = AfxGetApp()-> m_pMainWnd-> m_hWnd;
但是在某些时候某些机子上可以得到, 又有时候到这句就退出异常了。
我本来是通过h_mainwnd 来和主窗口发消息的, 请问哪种办法比较好?
为什么有些时候可以得到地址, 有时候又越界呢?
------解决方案--------------------
这个不行吧,你还是在dll中弄个全局变量
在加载dll的时候将CWinApp的全局变量指针传递进去为好
------解决方案--------------------
在dll利用FindWindow获得主窗口的句柄也可以啊!
afxGetApp应该是不可以的!他获得的只是你这个动态链接库运行对象的实例!
------解决方案--------------------
用AfxGetMainWnd()得到应用程序的主窗口(框架)比较好,没有发现调用异常
------解决方案--------------------
学习。
------解决方案--------------------
建议还是把主界面中的句柄传到dll里去
DLL中这么获得:
HWND h_mainwnd = AfxGetApp()-> m_pMainWnd-> m_hWnd;
但是在某些时候某些机子上可以得到, 又有时候到这句就退出异常了。
我本来是通过h_mainwnd 来和主窗口发消息的, 请问哪种办法比较好?
为什么有些时候可以得到地址, 有时候又越界呢?
------解决方案--------------------
这个不行吧,你还是在dll中弄个全局变量
在加载dll的时候将CWinApp的全局变量指针传递进去为好
------解决方案--------------------
在dll利用FindWindow获得主窗口的句柄也可以啊!
afxGetApp应该是不可以的!他获得的只是你这个动态链接库运行对象的实例!
------解决方案--------------------
用AfxGetMainWnd()得到应用程序的主窗口(框架)比较好,没有发现调用异常
------解决方案--------------------
学习。
------解决方案--------------------
建议还是把主界面中的句柄传到dll里去