1

我在 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 位架构编译它时,它可以工作。当我为 64 位编译时,它会生成命名窗口,但不会隐藏,并且在名称处我有一个奇怪的字符串,如“%HO”,与“INPUT”不同。当我尝试使用 imshow 显示某些内容时,它会给我一个违反访问权限的错误。图像来自网络摄像头。任何帮助,将不胜感激!谢谢。

更新

我试图查看窗口处理程序 hWnd 是否正常,并且在未提交的文件中它给了我“CXX0030:错误:无法评估表达式”。在函数 cvGetWindowHandle() 的 OpenCV 文档中说,在 Win32 应用程序的情况下,它返回按名称引用的窗口的本机 HWND。

4

0 回答 0