• 使用VS2015编译xlslib库


    环境:

      win7_x64,VS2015

    开始:

    一、下载xlslib库

      xlslib-package-2.5.0.zip

      解压到一个指定目录,如E:libraryxlslib-package-2.5.0

    二、创建VS2015项目

      1. 将"E:libraryxlslib-package-2.5.0xlslibxlslibuildmsvc2012"文件夹复制一份,并重命名为msvc2015

      2. 使用VS2015打开"E:libraryxlslib-package-2.5.0xlslibxlslibuildmsvc2015xlslib.sln",打开期间会提示是否升级到VS2015编译器,点击升级。

    三、配置VS2015项目

      1. 修改"xlslib_dll"项目

      "xlslib_dll"项目 -> "编辑 xlslib_dll.vcxproj",将重复的"<ClCompile Include="....srcxlslibformula.cpp" />"项,删除一个,然后重新加载项目即可。

      "xlslib_dll"项目 -> "C/C++" -> "预处理器" -> "预处理器定义" 添加 "_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS"

      "xlslib_lib"项目 -> "属性"  -> "生成事件" -> "后期生成事件" -> "命令行" 替换为 

    echo $(SolutionDir)bin/x64_MSVC2015.$(Configuration)createDLL -M$(Platform) -n$(OutDir)$(ProjectName).map -l$(IntDir) -i$(OutDir)$(ProjectName).lib -W$(SolutionDir)obj/$(ProjectName)_$(Platform)_MSVC2015.$(Configuration)
    $(SolutionDir)bin/x64_MSVC2015.$(Configuration)createDLL -M$(Platform) -n$(OutDir)$(ProjectName).map -l$(IntDir) -i$(OutDir)$(ProjectName).lib -W$(SolutionDir)obj/$(ProjectName)_$(Platform)_MSVC2015.$(Configuration)

      "xlslib_lib"项目 -> "属性"  -> "常规" -> "输出目录" -> 替换为 "$(SolutionDir)bin/$(Platform)_MSVC2015.$(Configuration)"

      "xlslib_lib"项目 -> "属性"  -> "常规" -> "中间目录" -> 替换为 "$(SolutionDir)obj/$(ProjectName)_$(Platform)_MSVC2015.$(Configuration)"

      2. 修改"createDLL"项目

      "createDLL"项目 -> "C/C++" -> "预处理器" -> "预处理器定义" 添加 "_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS"

      "createDLL"项目 -> "属性"  -> "常规" -> "输出目录" -> 替换为 "$(SolutionDir)bin/$(Platform)_MSVC2015.$(Configuration)"

      "createDLL"项目 -> "属性"  -> "常规" -> "中间目录" -> 替换为 "$(SolutionDir)obj/$(ProjectName)_$(Platform)_MSVC2015.$(Configuration)"

    四、修改编译错误

      1. 修改"acconfig.win32.h"文件

      删除230行"typedef __int8 int8_t;"

      2. 修改note.h文件

      将46行"uint16_t sheet_notes"替换为"uint16_t sheet_notess"

      3. 修改note.cpp文件

      将342行"last_sheet.sheet_notes"替换为"last_sheet.sheet_notess"

      将355行"sn.sheet_notes"替换为"sn.sheet_notes"

      将358行"sn.sheet_notes"替换为"sn.sheet_notes"

      4. 修改formula.cpp文件

      将917行"function_property p = (function_property) {CELLOP_AS_VALUE, A_UNKNOWN};"替换为"function_property p{CELLOP_AS_VALUE, A_UNKNOWN};"

      5. 修改createDLL.cpp文件

      在385行添加"__xmm@",否则编译"xlslib_dll"项目会出现"error LNK2001: 无法解析的外部符号 __xmm@00000000000000000000000000000002"

      "__xmm@00000000000000000000000000000002"符号是在构造函数初始化列表中枚举类型赋初始值时,VS2015编译时自动创建的,在VS2010中不会创建这个符号,添加到filterSymbols数组是为了将不需要导出的符号过滤掉。

  • 相关阅读:
    TThread.CreateAnonymousThread 多线程
    flask——包含,继承,宏
    flask-数据库
    flask框架--模板
    flask框架--cookie,session
    flask框架~简易编写
    flask框架1
    第2题:设计包含min函数的栈
    第1题:把二叉搜索树转换为一个排序的双向链表
    关于过渡机制一点理解
  • 原文地址:https://www.cnblogs.com/dongc/p/8256813.html
Copyright © 2020-2023  润新知