C++中第三方库的一般使用方式(libxl库为例)

简介: C++中第三方库的一般使用方式(libxl库为例)

本篇介绍如何使用C/C++的第三方库,学会使用第三方库很重要,尤其对于使用C/C++语言的人来说,标准库能做的事不能说太少,恰当的说应该是没那么有趣。学会使用第三方库,我们就可以找一些自己感兴趣的或者项目中需要用到的三方库来学习或使用,可以扩展自己的眼界。本篇以LibXL库为例,介绍一般性的使用方式(每个库都不相同,但大致原理是相同的)。

LibXL库可以用来读写excel文件,这是它的官网:https://www.libxl.com/

官网下面给出了一个小例子:

#include "libxl.h"
using namespace libxl;
int main() 
{
    Book* book = xlCreateBook(); // xlCreateXMLBook() for xlsx
    if(book)
    {
        Sheet* sheet = book->addSheet(L"Sheet1");
        if(sheet)
        {
            sheet->writeStr(2, 1, L"Hello, World !");
            sheet->writeNum(3, 1, 1000);
        }
        book->save(L"example.xls");
        book->release();
    } 
    return 0;
}

我们就以这个例子为例,让它在vs中实际运行起来:

首先下载库:

直接点击DOWNLOAD

下载后解压:

进入libxl-4.0.4.0,可以看到有一个readme.txt

文档写的非常清楚:

1. Microsoft Visual C++
   - add include directory in your project, for example: c:\libxl\include_cpp
     Project -> Properties -> C/C++ -> General -> Additional Include Directories
   - add library directory in your project, for example: c:\libxl\lib
     Project -> Properties -> Linker -> General -> Additional Library Directories
   - add libxl.lib in project dependencies:
     Project -> Properties -> Linker -> Input -> Additional Dependencies
   - copy bin\libxl.dll to directory of your project

(创建一个空的vs工程,将示例代码写入main.cpp)

第一步:添加头文件目录:

(需要注意的是:一定要看清配置的版本和平台是否与要生成的一致。)

如果我们没有添加头文件目录或添加不正确,往往会出现这样的错误:

报头文件找不到。

第二步:添加lib库目录:

第三步:添加lib库:

如果我们没有配置lib库目录及添加libxl.lib 或 只配置了lib库目录忘记了添加libxl.lib到附加依赖项,往往会报这样的错误:

无法解析的外部符号(我初学时最害怕看到这样的报错)

如果我们添加了libxl.lib到附加依赖项,但忘记配置lib库目录,往往会报这样的错误:

因为没有配置lib库路径,所以无法打开。

第四步:添加dll库文件到程序exe目录下:

如果我们忘记添加,往往会报这样的错误:

按照以上步骤完成后,运行程序,可以发现程序正常运行,并在工程目录中生成了example.xls文件。

这便是libxl库的使用配置方式,对于其他三方库,大同小异。当然最重要的,如果我们能深入理解底层原理,知道库的作用,便能在使用任何三方库时都游刃有余,这也是我一直在学习的,这里推荐一本书《程序员的自我修养:链接、装载与库》。

相关文章
|
5月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
1185 2
|
5月前
|
缓存 算法 程序员
C++STL底层原理:探秘标准模板库的内部机制
🌟蒋星熠Jaxonic带你深入STL底层:从容器内存管理到红黑树、哈希表,剖析迭代器、算法与分配器核心机制,揭秘C++标准库的高效设计哲学与性能优化实践。
C++STL底层原理:探秘标准模板库的内部机制
|
5月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
236 11
|
5月前
|
IDE 编译器 开发工具
msvcp100.dll,msvcp120.dll,msvcp140.dll,Microsoft Visual C++ 2015 Redistributable,Visual C++ 运行库安装
MSVC是Windows下C/C++开发核心工具,集成编译器、链接器与调试器,配合Visual Studio使用。其运行时库(如msvcp140.dll)为程序提供基础函数支持,常因缺失导致软件无法运行。通过安装对应版本的Microsoft Visual C++ Redistributable可解决此类问题,广泛应用于桌面软件、游戏及系统级开发。
669 2
|
6月前
|
并行计算 C++ Windows
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
356 6
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
330 10
|
JSON C++ 数据格式
C++20 高性能基础库--兰亭集库助力开发者构建高性能应用
这次分享的主题是《高性能基础库--兰亭集库助力开发者构建高性能应用》的实践经验。主要分为三个部分: 1. 业务背景 2. 雅兰亭库架构 3. 业务优化
494 9
|
XML 网络协议 API
超级好用的C++实用库之服务包装类
通过本文对Boost.Asio、gRPC和Poco三个超级好用的C++服务包装类库的详细介绍,开发者可以根据自己的需求选择合适的库来简化开发工作,提高代码的效率和可维护性。每个库都有其独特的优势和适用场景,合理使用这些库可以极大地提升C++开发的生产力。
347 11