编译xlslib 测试写入中文


1下载xlslib库

https://sourceforge.net/projects/xlslib/?source=directory

我下载的是

xlslib-package-2.5.0.zip

解压

在xlslib\xlslib\build目录中寻找你的编译器对应的版本 里面有sln文件

我用的msvc2010

 

xlslib\xlslib\build\msvc2010\xlslib.sln

我们需要的只有xlslib_dll动态或者xlslib_lib静态

打开后提示两个错误

A OpenEXR\IlmBase\vc\vc10\IlmBase\createDLL\createDLL.vcxproj: error  : 未能找到项目“xlslib\OpenEXR\IlmBase\vc\vc10\IlmBase\createDLL\createDLL.vcxproj”。

 

B build\msvc2010\xlslib_lib.vcxproj : error  : 筛选器“SourceFiles”的结果中,已存在项“..\..\src\xlslib\formula.cpp”

 

第一个问题A解决

将xlslib\OpenEXR\IlmBase\vc\vc10\IlmBase\createDLL\createDLL.vcproj 改成createDLL.vcxproj之前的少了一个x

你对应的版本是VC1012 就去对应的目录里面改。

 

第二个问题B解决

xlslib\xlslib\build\msvc2010\xlslib_lib.vcxproj用记事本或者notepated++(推荐) 打开编辑

324行和325行

<ClCompile Include="..\..\src\xlslib\formula.cpp"/>两行都是 这个

删除其中一行,只保留一行就行。

 

重新打开xlslib.sln工程没有错误。

 

编译出现错误。

 

1 “sheet_notes”前的类型(构造函数有返回类型或是当前类型名称的非法重定义?)

解决

src/xlslib/note.h

44-47行

struct sheet_notes

{

 uint16_t sheet_idx

uint16_t sheet_notes;

}

成员sheet_notes和结构名一样冲突了

修改成员名unit16_t sheet_notes为uint16_t sheet_notes__只要不冲突就行。

后续用到这个变量的地方也修改,这个编译的时候会提示的。

note.cpp(342) last_sheet.sheet_notes__

note.cpp(355) sn.sheet_notes__

note.cpp(358) sn.sheet_notes__

 

2 formula.cpp(917) error C2059 语法错误"{"

解决

将function_propertyp = (function_property) {CELLOP_AS_VALUE, A_UNKNOWN};

修改为

function_property p ={CELLOP_AS_VALUE, A_UNKNOWN};

去掉 (function_property)

 

3测试的例子也有错误

targets\test\md5.c(464): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)

3>..\..\targets\test\md5.c(467): error C2065: “bload”: 未声明的标识符

这个是.c语法 后面申明了 int bload

将Int bload提到该函数的最前面一行

 

再次编译 提示错误

char const * __cdecl check_file(char const *,char const *)

这个是由于c文件导出函数接口不同

在Target/test/md5.h

#if defined(__cplusplus)

extern "C"

{

#endif

#if defined(__cplusplus)

}

#endif

 

注释取消掉

 

再次编译KO

有些测试的例子代码有问题。自己修改吧。其他的没问题

Bin目录运行

xlslib-testC.exe

看看 testC.xls 已经成功了

写入中文

xlsWorksheetLabelW(ws, row++, col,L"你好。中国", NULL);

 OK

 




如果使用静态库 你会发现编译好的Lib有几十M 甚至DEBUG的都比release的要小

只是为什么呢?

在xlslib_lib右键 属性 配置属性 C/C++ 优化 全程序优化 选择否 Lib就非常小了

没有全程序优化带着这个几十M的lib






  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值