在MFC regular dll中我可以 add class-> from a type library...生成excel.h和excel.cpp两个文件。用这两个文件可生成excel文件,并做写入数据。
  但是在非MFC DLL中,使用这两个文件,却报error C2504: 'COleDispatchDriver' : base class undefined的错。我发现这个的定义在d:\program files\microsoft visual studio 8\vc\atlmfc\include\afxdisp.h文件中。

解决方案 »

  1.   

    需要MFC支持,可以包含对应的头文件试试
      

  2.   

    试一下直接#import 方式
    #import "C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE11\\MSO.DLL" rename( "RGB", "MSORGB" )
    using namespace Office;#pragma warning(disable : 4192)#import "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.OLB"
    #import "D:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE" \
    rename( "DialogBox", "ExcelDialogBox" ) \
    rename( "RGB", "ExcelRGB" ) \
    rename( "CopyFile", "ExcelCopyFile" ) \
    rename( "ReplaceText", "ExcelReplaceText" )using namespace Excel;
    楼主可根据文件实际情况改一下路径
      

  3.   

    调用Excel是COM自动化接口,而Com自动化接口就得有MFC支持,所以非MFC dll中调用不了Excel自动化接口。
      

  4.   

    需要包含头文件。
    #include <afxdisp.h> 我也是出现这个问题,非MFC下,从网上搜到的,加上这个就好了,