vs2005中MFC程序支持Com程序有关问题
vs2005中MFC程序支持Com程序问题
我在学习修改一个sdk的例子程序,该例子是在vs2005下开发的,对之用的技术还不甚熟悉,有这么一句[module(exe, name="AlertNotification", uuid="FE72A6B2-BBBE-498f-B9B5-2F2BB866FBF6")]; 之后就是大量的msxml操作xml文件,程序运行要sdk的一些dll支持,这个程序是控制台的,我想要把它移植到MFC下,于是建了一个MFC工程,把一些代码移植过去,一开始报错“CAtlExeModuleT”: 未定义基类,网上找答案,把template <class T>
class ATL_NO_VTABLE CAtlExeModuleT : public CAtlModuleT<T>
{。。。。。。这个类从好像是altbase.h中拷贝出来的 拷贝到我工程下面,因为MFC工程包含一些头文件时定义了_AFX什么的宏,然后再包含atlbase.h时这个头文件判断是否定义了那个_AFX宏,如果定义了就不编译我需要的那个CAtlExeModuleT 类,于是就出错了。。。不知大家看懂了没有,这就是我拷贝出来的原因。。。 好,这样编译通过了,运行时界面却出不来了,调试发现根本没有走到App对象的InitInstance函数。。。有些头痛 。。。。大侠们。。可否指点下。。。我分数有点少就剩二十几分了。。。还是渴望大家不吝赐教。。
------解决方案--------------------
你可以创建一个ATL工程 选上“支持MFC”即可同时使用两种库
也可以就创建MFC工程 如果只是要用MSXML 不需要ATL也行 估计是代码里面用到了一些CComPtr CComVariant之类的助手类 基本上你可以用_com_ptr_t等类取代 http://msdn.microsoft.com/en-us/library/5yb2sfxk(v=VS.80).aspx
我在学习修改一个sdk的例子程序,该例子是在vs2005下开发的,对之用的技术还不甚熟悉,有这么一句[module(exe, name="AlertNotification", uuid="FE72A6B2-BBBE-498f-B9B5-2F2BB866FBF6")]; 之后就是大量的msxml操作xml文件,程序运行要sdk的一些dll支持,这个程序是控制台的,我想要把它移植到MFC下,于是建了一个MFC工程,把一些代码移植过去,一开始报错“CAtlExeModuleT”: 未定义基类,网上找答案,把template <class T>
class ATL_NO_VTABLE CAtlExeModuleT : public CAtlModuleT<T>
{。。。。。。这个类从好像是altbase.h中拷贝出来的 拷贝到我工程下面,因为MFC工程包含一些头文件时定义了_AFX什么的宏,然后再包含atlbase.h时这个头文件判断是否定义了那个_AFX宏,如果定义了就不编译我需要的那个CAtlExeModuleT 类,于是就出错了。。。不知大家看懂了没有,这就是我拷贝出来的原因。。。 好,这样编译通过了,运行时界面却出不来了,调试发现根本没有走到App对象的InitInstance函数。。。有些头痛 。。。。大侠们。。可否指点下。。。我分数有点少就剩二十几分了。。。还是渴望大家不吝赐教。。
------解决方案--------------------
你可以创建一个ATL工程 选上“支持MFC”即可同时使用两种库
也可以就创建MFC工程 如果只是要用MSXML 不需要ATL也行 估计是代码里面用到了一些CComPtr CComVariant之类的助手类 基本上你可以用_com_ptr_t等类取代 http://msdn.microsoft.com/en-us/library/5yb2sfxk(v=VS.80).aspx