现在本人需要做界面,但是需要以COM做插件的方式实现,COM同时也要用到MFC。就是说,插件功能就是可以将客户端的应用程序的界面使用插件中的FORMVIEW替换原来的FORMVIEW对话框,其中我需要在COM中使用MFC(在此不考虑MFC的资源消耗等问题,只考虑能实现其功能,一定要使用MFC)。我在我做的COM工程中是使用如下步骤创建的:
1、创建一个MFC Appwizard(dll)的以Media为名的工程;
2、在第二页中选中Automation,其余均为默认设置;
3、然后添加了一个对话框窗体资源,风格为:Style=Child, Border=None, 选中Visible;
4、在窗体中添加了一个按钮控件;
5、然后通过Insert->New ATL Object,在弹出的询问对话框中"Do you want to Add ATL support to your MFC Project?"中选择“是”,但是并不创建任何COM对象,通过"Esc"键退出,这样获得了ATL的支持;
6、在ResourceView中选中刚才添加的那个对话框窗体资源,然后选择菜单View->ClassWizard,在弹出的对话框中为窗体资源IDD_DIALOG1创建新基于CDialog的类CMyDlg, ▲注意,在此也选择了Automation选项。通过如上步骤就得到了一个以IMyDlg为接口,CMyDlg为其类名的东东,让后我就按照通常的方式为接口添加方法"BOOL ShowMe()"函数直接返回了TRUE。如上所得的工程编译成功。但是把我的这个工程添加到了客户端的时候,老是提示ShowMe()不是对象IMyDlg的函数,不知道什么原因。请各位大侠帮忙。是不是我在创建工程中缺少了什么步骤,还是那个步骤有问题,还是COM注册的问题,为什么能找到这个主件,但是却不认它的成员函数呢?(顺便说一句,我在客户端的各项设置都没有问题,该加的头文件等都添加了)