OpenCV和MFC--在32位和64位

时间:2016-03-28 16:07:41

标签: c++ visual-studio-2010 opencv mfc vc10

我在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。

0 个答案:

没有答案