|
当用VC操作Excel和运用ADO操作数据库时产生冲突问题,这时如何解决呢,下面请看详细问题:添加头文件包含:#include <afxole.h> 并且导入Excel类型库包含头文件:#include "excel.h"(我用的是Office 2003)如果按照如下方式导入ADO则会产生冲突: #import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
去掉no_namespace 后可以解决冲突的问题,但是在每次需要使用ado的相应东西的时候需要在其前加上ADODB::, 比如:ADODB::_RecordsetPtr。 也可以参考如下方式: #pragma warning (disable : 4146 4049) #define __OFFICE_XP #ifdef __OFFICE_XP #import "E:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL" #import "E:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" \ rename_namespace("VBIDE") #import "E:\Program Files\Microsoft Office\Office10\Excel.EXE" \ rename("DialogBox", "DialogBoxXL") \ rename("RGB", "RGBXL") \ rename("ExitWindows", "ExitWindowsXL") \ rename("DocumentProperties", "DocumentPropertiesXL") \ no_auto_exclude #import "E:\Program files\Microsoft Office\Office10\MSWORD.OLB" \ rename("DialogBox", "DialogBoxDoc") \ rename("RGB", "RGBDoc") \ rename("ExitWindows", "ExitWindowsDoc") \ rename("DocumentProperties", "DocumentPropertiesDoc") \ no_auto_exclude #endif
#ifdef __OFFICE_2000 #import "E:\Program Files\Microsoft Office\Office\MSO9.DLL" #import "E:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB" \ rename_namespace("VBIDE") #import "E:\Program Files\Microsoft Office\Office\EXCEL9.OLB" \ rename("DialogBox", "DialogBoxXL") \ rename("RGB", "RGBXL") \ rename("ExitWindows", "ExitWindowsXL") \ rename("DocumentProperties", "DocumentPropertiesXL") \ no_auto_exclude #import "E:\Program files\Microsoft Office\Office\MSWORD9.OLB" \ rename("DialogBox", "DialogBoxDoc") \ rename("RGB", "RGBDoc") \ rename("ExitWindows", "ExitWindowsDoc") \ rename("DocumentProperties", "DocumentPropertiesDoc") \ no_auto_exclude #endif
#ifdef __OFFICE_97 #define IMPATTRS rename("DocumentProperties", "DocProps") #import "mso97.dll" IMPATTRS #import "vbeext1.olb" rename_namespace("VBIDE") #import "excel8.olb" IMPATTRS rename("DialogBox", "DialogBoxXL") \ rename("RGB", "RGBXL") \ rename("ExitWindows", "ExitWindowsXL") \ rename("DocumentProperties", "DocumentPropertiesXL") \ rename("_CommandBars", "CommandBarsXL") \ no_auto_exclude #import "msword8.olb" rename("DialogBox","dialogBoxDOC") \ rename("RGB","RGBDOC") no_auto_exclude \ rename("ExitWindows","WordExitWindows") no_auto_exclude #endif
#import "msado21.tlb" rename("EOF", "adoEOF")
|