我在Microsoft Visual Studio 2010中有一个MFC项目。在我的对话框中,我有一个PictureControl。我使用opencv生成一个窗口,然后将其翻译为我的PictureControl,如下所示
namedWindow("INPUT", 1);
HWND hWnd = (HWND) cvGetWindowHandle("INPUT");
HWND hParent = ::GetParent(hWnd);
::SetParent(hWnd, GetDlgItem(IDC_BMP_LOAD)->m_hWnd);
::ShowWindow(hParent, SW_HIDE);
当我为32位arhitecture编译它时,它可以工作。当我编译为64位时,它会生成namedwindow但不会隐藏,并且在名称中我有一个奇怪的字符串,如"%HO",不同于" INPUT"。当我尝试用imshow显示某些东西时,它会给我一个错误的访问冲突。图像来自网络摄像头。 任何帮助,将不胜感激! 谢谢。
更新
我试图查看窗口处理程序hWnd是否正常,在未处理的文件中它给了我" CXX0030:错误:表达式无法评估"。在函数cvGetWindowHandle()中的OpenCV文档中,它表示在Win32应用程序的情况下,它返回由名称引用的窗口的本机HWND。