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

相关文章
|
1月前
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
61 6
|
1月前
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
95 10
|
1月前
|
存储 程序员 C++
C++常用基础知识—STL库(2)
C++常用基础知识—STL库(2)
69 5
|
1月前
|
存储 自然语言处理 程序员
C++常用基础知识—STL库(1)
C++常用基础知识—STL库(1)
52 1
|
2月前
|
编译器 API C语言
超级好用的C++实用库之跨平台实用方法
超级好用的C++实用库之跨平台实用方法
39 6
|
2月前
|
安全 C++
超级好用的C++实用库之环形内存池
超级好用的C++实用库之环形内存池
47 5
|
2月前
|
缓存 网络协议 Linux
超级好用的C++实用库之套接字
超级好用的C++实用库之套接字
34 1
|
2月前
|
存储 算法 安全
超级好用的C++实用库之sha256算法
超级好用的C++实用库之sha256算法
97 1
|
2月前
|
存储 算法 安全
超级好用的C++实用库之国密sm4算法
超级好用的C++实用库之国密sm4算法
55 0
|
2月前
|
网络协议 Linux C++
超级好用的C++实用库之网络
超级好用的C++实用库之网络
45 0