关于CSpreadSheet的若干问题

来源:互联网 发布:ccleaner清除数据 编辑:程序博客网 时间:2024/04/28 12:59

1、对于微软的excel,用程序操作的话,有封装好的类。就是CSpreadSheet.h 和 CSpreadSheet.cpp。这个在CSDN上面可以下载。具体地址:http://download.csdn.net/detail/happyeggplant/2162615。

2、关于CSpreadSheet这个封装类的使用,有一个比较全的地址。http://www.vckbase.com/index.php/wv/494.html。上面有基本的一些操作。基本上需求都有了。

3、我按照上面网站,写了一个只要读取xls文件的程序。我的项目如图:

然后编译,出现问题。

问题1:------ 已启动生成: 项目: xls, 配置: Debug Win32 ------
生成启动时间为 2013-5-4 23:18:26。
InitializeBuildStatus:
  正在创建“Debug\xls.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
ClCompile:
  CSpreadSheet.cpp
c:\program files\microsoft sdks\windows\v7.0a\include\sqltypes.h(137): error C2146: 语法错误: 缺少“;”(在标识符“SQLHWND”的前面)
c:\program files\microsoft sdks\windows\v7.0a\include\sqltypes.h(137): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
c:\program files\microsoft sdks\windows\v7.0a\include\sqltypes.h(137): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
c:\program files\microsoft sdks\windows\v7.0a\include\sqltypes.h(275): error C2146: 语法错误: 缺少“;”(在标识符“Data1”的前面)
...........................

c:\program files\microsoft sdks\windows\v7.0a\include\sql.h(862): error C2143: 语法错误 : 缺少“)”(在“;”的前面)
c:\program files\microsoft sdks\windows\v7.0a\include\sql.h(862): fatal error C1003: 错误计数超过 100;正在停止编译
生成失败。
已用时间 00:00:03.43
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

照理说这个不应该出现问题啊。这个是系统的一些文件。我很纳闷。网上看了,也有这样的问题。

解决办法:我的CSpreadSheet.cpp文件的头文件是这样的:

#include "CSpreadSheet.h"
#include "StdAfx.h"

我将这个位置交换一下就没有问题了。这个头文件还是这么讲究。这样变成

#include "StdAfx.h"

#include "CSpreadSheet.h"


问题2.变成出现的char [] 无法转换成 wchar_t之类的。这个就是一个转换的了。

由于我用的VS 2010。所以我在项目-->属性-->配置属性-->字符集。将这一项改成:使用多字节字符集。就OK了。不然,用Unicode字符集就需要转换了。


问题3.odbccp32.lib(dllload.obj) : error LNK2019: 无法解析的外部符号 __imp___vsnprintf,该符号在函数 _StringVPrintfWorkerA@.....

这个问题就是odbccp32.lib这个找不到吧。

这个在C:\Program Files\下面搜索odbccp32.lib。然后就出现了。可能有多个,由于安装了多了VC编译器。然后在项目-->属性--->连接器-->输入。找到附加依赖项。将这个lib的路径加入进去。


经过这些过程,终于,编译成功,生成。

以此记录。

原创粉丝点击