hur.cn - 华软网

 热门搜索

VC操作excel2003出现的问题

  作者:未知    来源:网络    更新时间:2011/9/14
我新建一个工程test,在类向导automation项add class->from a type library选择EXCEL.EXE,然后将弹出对话框的所有类都选上,单击OK,然后在Stafx.h中添加#include <afxdisp.h>   #include"excel.h",同时在excel.h文件前后添加
C++">
#if !defined _HEAD_FILE_EXCEL_
#define _HEAD_FILE_EXCEL_     
....
 #endif
在testcpp文件中的InitInstance函数中添加
C++">
if (!AfxOleInit())
{
AfxMessageBox("初始化Ole出错!");
return FALSE;
}

运行时完全没有错误,然而按照同样的步骤,对我的工程pipeline进行同样的操作时,出现了以下一大堆错误。没有进行该操作前,我的工程完全正常。
C++">
error C2011: 'Filters' : 'class' type redefinition
error C2065: 'raw_Refresh' : undeclared identifier
error C2673: 'Refresh' : global functions do not have 'this' pointers
......


---华软 网友回答---
你这个应该是头文件循环重复包含的问题
你仔细检查检查这些类型的定义之处
类型定义最好放在cpp文件里,在h文件里进行声明
---华软网友回复---
头文件前
#pragma once
试试
---华软网友回复---
error C2011: 'Filters' : 'class' type redefinition
重复定义了。检查是否重复包含头文件
error C2065: 'raw_Refresh' : undeclared identifier
没定义,检查raw_Refresh是否定义,并在使用的文件里是否包含定义的文件
error C2673: 'Refresh' : global functions do not have 'this' pointers
使用的函数是一个全局函数,不能直接使用this指针。新建一个HWND hwnd = this->m_hWnd;

---华软网友回复---
谢谢大家了,这个问题已经搞定了,添加的类太多了只选择application,workbooks,_workbook,worksheets,_worksheet,Range这五个类就行了,其他不用改动的      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。