近日有一个客户想要做一个视频控件,指明要用海康的视频服务器,并提供给我一个SDK演示程序,是一个对话框,上面布满了大大小小的按钮、菜单等控件,我拿过来一看,好,有十多万行源码,好在客户要求的功能不多,只有一个录像功能。
我就在源码里面删控件,最后总算弄得非常简单明了。后面的问题来了,如何把这个对话框封装成控件呢,根据我的经验,在控件中可以嵌入对话框程序,网上也有例子,但那是在ActiveX控件工程中添加的对话框,要把一个对话框应用程序的例子中的对话框加到ActiveX控件中,还不太好加,何况这个对话框程序中有上百个小的对话框。
单单把这些对话框资源导到ActiveX控件中,就够折腾一气的,导完了,一编译,出现了非常少见的资源编译错误,无法解决。没办法,只得一个一个把需要的对话框添加到工程中,一步一编译。
接下来是对App类的改造,把原先在对话框App中的代码,以及包含的头文件都加到控件的App中,在控件类中加入主对话框做为成员变量,编译通过了,运行的时候,出现内存错误,然后断到一个创建主对话框的MFC源码处,接下来反复下断点,甚至注释掉主对话框中几乎所有的成员函数,程序一如即往地出现内存错误,所有的断点都断不下来,即使是把控件类中的主对话框成员变量去掉,还是一样&