【发布时间】:2023-04-07 08:31:01
【问题描述】:
我在我的项目中使用纯 C 和 Windows SDK,但现在我需要处理 DVR 的摄像头,该驱动程序是在 MFC 6.0 中制作的。
我可以随时切换到 C++(我已经在某些模块中使用它),但是在这个相机 SDK 中我需要 CWnd 的对象。
//Initialize is a function, which initializes the related SDK instance.
Void Initialize(CWnd* pParent)
我可以创建一个假的 CWnd,而不将 MFC 的东西加载到 MFC 项目中,而只使用我的普通 CreateWindowEx() 吗?
谢谢。
【问题讨论】:
-
你有图书馆的来源吗?你也许可以伪造它。如果它唯一要做的就是获取 CWnd::m_hWnd 或调用 Cwnd::GetSafeHwnd,那么您可以创建一个虚拟 Cwnd 类来返回您的实际 HWND。但是,如果它使用 Cwnd 的成员函数的嵌套混乱,您可能会陷入困境......
-
不,我没有。但我知道这个库使用 Cwnd 创建与这个 HWND 关联的线程(用于相机)。不过我可以试试!如何创建这个虚拟 CWnd?
-
看看openmfc.codeplex.com - 它是 MFC 的开源版本。