欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c++動(dòng)態(tài)庫(kù)調(diào)用的實(shí)現(xiàn)

 更新時(shí)間:2022年07月01日 11:05:26   作者:朦朧的心一樣不平凡  
本文主要介紹了c++動(dòng)態(tài)庫(kù)調(diào)用的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在平時(shí)的開(kāi)發(fā)中某些情況,動(dòng)態(tài)庫(kù)和靜態(tài)庫(kù)是程序開(kāi)發(fā)的不二法門(mén),例如封裝一個(gè)庫(kù),供別人調(diào)用(日志庫(kù)、字符串處理庫(kù)、設(shè)備信息采集庫(kù)等),比如接入第三方系統(tǒng)或者平臺(tái),等等是非常重要的,筆者最早接觸的MFC時(shí)就有dll(VC++深入詳解)及雞啄米的MFC環(huán)節(jié),后面隨著QT的盛行(國(guó)產(chǎn)化的推進(jìn)),QT開(kāi)始廣泛應(yīng)用,里面也有動(dòng)態(tài)庫(kù),就筆者最近的項(xiàng)目為例,這里記錄下從庫(kù)的生成到最后的調(diào)用;

一、生成dll

1.安裝vs開(kāi)發(fā)工具(2017);

2.新建c++ dll 工程;

3.實(shí)現(xiàn).h和.cpp,將新建默認(rèn)的.h和.cpp移除;

OSCommonDefine.h

#ifndef __BASE_OSCOMMONDEFINE_H__
#define __BASE_OSCOMMONDEFINE_H__
 
#define AT_DLLEXPORT __declspec(dllexport)
 
#endif // __BASE_OSCOMMONDEFINE_H__

CStringUtils.h

//-----------------------------------------------------------------------------
// Copyright (c) 2022, xxx
// All rights reserved.
//
// 摘要: CStringUtils.h 字符串工具類(lèi)聲明
// 當(dāng)前版本: 1.0
// 作者: Zhang Lei
// 日期:2022.06.28
// 版本說(shuō)明:類(lèi)初始版本實(shí)現(xiàn)
//-----------------------------------------------------------------------------
 
#ifndef __BASE_CSTRINGUTILS_H__
#define __BASE_CSTRINGUTILS_H__
 
#include "OSCommonDefine.h"
#include <string>
#include <vector>
using namespace std;
 
// CStringUtils類(lèi)定義
class AT_DLLEXPORT CStringUtils
{
public:
    // 字符串轉(zhuǎn)大寫(xiě)
    static string& ToUpper(string& strContent);
    // 字符串轉(zhuǎn)小寫(xiě)
    static string& ToLower(string& strContent);
    // 字符串忽略大小寫(xiě)比較
    static int CompareNoCase(const string& strContent, const string& strContentCmp);
};
 
#endif // __BASE_CSTRINGUTILS_H__

 CStringUtils.cpp

//-----------------------------------------------------------------------------
// Copyright (c) 2022, xxx
// All rights reserved.
//
// 摘要: CStringUtils.h 字符串工具類(lèi)聲明
// 當(dāng)前版本: 1.0
// 作者: Zhang Lei
// 日期:2022.06.28
// 版本說(shuō)明:類(lèi)初始版本實(shí)現(xiàn)
//-----------------------------------------------------------------------------
 
#include <string>
#include <algorithm>
#include "../../include/CStringUtils.h"
using namespace std;
 
//-----------------------------------------------------------------------------
// 功能: 字符串轉(zhuǎn)大寫(xiě)
// 參數(shù):
// strContent: 待轉(zhuǎn)的字符串
// 返回值: 返回轉(zhuǎn)換后字符串的引用對(duì)象
// 創(chuàng)建者: Zhang Lei
// 日期:2022.06.28
//-----------------------------------------------------------------------------
string& CStringUtils::ToUpper(string& strContent)
{
    transform(strContent.begin(), strContent.end(), strContent.begin(), ::toupper);
    return strContent;
}
 
//-----------------------------------------------------------------------------
// 功能: 字符串轉(zhuǎn)小寫(xiě)
// 參數(shù):
// strContent: 待轉(zhuǎn)的字符串
// 返回值: 返回轉(zhuǎn)換后字符串的引用對(duì)象
// 創(chuàng)建者: Zhang Lei
// 日期:2022.06.28
//-----------------------------------------------------------------------------
string& CStringUtils::ToLower(string& strContent)
{
    transform(strContent.begin(), strContent.end(), strContent.begin(), ::tolower);
    return strContent;
}
 
//-----------------------------------------------------------------------------
// 功能: 字符串忽略大小寫(xiě)比較
// 參數(shù): strContent 字符串 strContentCmp 比較的字符串
// 返回值: 比較結(jié)果
// 創(chuàng)建者: 2022.06.28
// 創(chuàng)建日期: 2022.06.28
//-----------------------------------------------------------------------------
int CStringUtils::CompareNoCase(const string& strContent, const string& strContentCmp)
{
#if defined(_WIN32)
    return _stricmp(strContent.c_str(), strContentCmp.c_str());
#elif defined(__linux__)
    return strcasecmp(strContent.c_str(), strContentCmp.c_str());
#endif
}

4.生成dll,編譯報(bào)錯(cuò);

 去掉預(yù)編譯頭

成功

5.說(shuō)明:

一般要將.h和.cpp分開(kāi),畢竟.h是對(duì)外調(diào)用的,要和管理;

二、調(diào)用dll

1.新建測(cè)試程序,這里新建一個(gè)控制臺(tái)應(yīng)用程序;

2.調(diào)用:

#include <iostream>
#include "../../include/CStringUtils.h"
 
int main()
{
	std::string str = "I love China";
 
	std::cout << "Hello World!\n";
	std::cout << CStringUtils::ToUpper(str) << std::endl;
	std::cout << CStringUtils::ToLower(str) << std::endl;
}

在工程中設(shè)置調(diào)用庫(kù)名和路徑: 

 4.成功輸出:

 到此這篇關(guān)于c++動(dòng)態(tài)庫(kù)調(diào)用的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)c++動(dòng)態(tài)庫(kù)調(diào)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析C語(yǔ)言調(diào)試器GDB和LLDB的使用方法

    淺析C語(yǔ)言調(diào)試器GDB和LLDB的使用方法

    這篇文章主要介紹了C語(yǔ)言調(diào)試器GDB和LLDB的使用方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 一文學(xué)會(huì)數(shù)據(jù)結(jié)構(gòu)-堆

    一文學(xué)會(huì)數(shù)據(jù)結(jié)構(gòu)-堆

    本文主要介紹了數(shù)據(jù)結(jié)構(gòu)-堆,文中通過(guò)圖片和大量的代碼講解的非常詳細(xì),需要學(xué)習(xí)的朋友可以參考下這篇文章,希望可以幫助到你
    2021-08-08
  • C語(yǔ)言計(jì)算代碼執(zhí)行所耗CPU時(shí)鐘周期

    C語(yǔ)言計(jì)算代碼執(zhí)行所耗CPU時(shí)鐘周期

    本文給大家介紹的是使用C語(yǔ)言來(lái)計(jì)算代碼執(zhí)行所耗CPU時(shí)鐘周期的代碼,非常的簡(jiǎn)單實(shí)用,不過(guò)要依托于sync,有需要的小伙伴自己參考下吧。
    2015-03-03
  • C語(yǔ)言中結(jié)構(gòu)體實(shí)例解析

    C語(yǔ)言中結(jié)構(gòu)體實(shí)例解析

    大家好,本篇文章主要講的是C語(yǔ)言中結(jié)構(gòu)體實(shí)例解析,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-02-02
  • C語(yǔ)言實(shí)現(xiàn)單詞小助手功能完善版

    C語(yǔ)言實(shí)現(xiàn)單詞小助手功能完善版

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)單詞小助手功能的完善版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C語(yǔ)言算法學(xué)習(xí)之雙向鏈表詳解

    C語(yǔ)言算法學(xué)習(xí)之雙向鏈表詳解

    雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個(gè)數(shù)據(jù)結(jié)點(diǎn)中都有兩個(gè)指針,分別指向直接后繼和直接前驅(qū)。本文主要介紹了C語(yǔ)言算法中雙向鏈表的實(shí)現(xiàn),需要的可以參考一下
    2022-05-05
  • 函數(shù)式宏定義與普通函數(shù)的區(qū)別

    函數(shù)式宏定義與普通函數(shù)的區(qū)別

    盡管函數(shù)式宏定義和普通函數(shù)相比有很多缺點(diǎn),但只要小心使用還是會(huì)顯著提高代碼的執(zhí)行效率,畢竟省去了分配和釋放棧幀、傳參、傳返回值等一系列工作,因此那些簡(jiǎn)短并且被頻繁調(diào)用的函數(shù)經(jīng)常用函數(shù)式宏定義來(lái)代替實(shí)現(xiàn)
    2013-10-10
  • C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例

    C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例

    這篇文章主要介紹了C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例,并且轉(zhuǎn)換后會(huì)統(tǒng)計(jì)二進(jìn)制1的個(gè)數(shù),實(shí)例簡(jiǎn)單明了,需要的朋友可以參考下
    2014-06-06
  • C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單航班管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單航班管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單航班管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C++利用VLC庫(kù)制作音視頻的示例代碼

    C++利用VLC庫(kù)制作音視頻的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C++如何利用VLC庫(kù)制作音視頻,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下
    2024-01-01

最新評(píng)論