如何在C++程序中調用dll文件


前言:首先做一些基礎操作,新建一個dll文件

1.先新建項目–>win 32項目(比如命名為testDLL)–>dll(選中空項目)–>完成。 
2.新建一個文件,命名為Add.cpp,完成如下代碼:

#define DLLEXPORT extern "C" __declspec(dllexport)

DLLEXPORT int sum(int a, int b) 
{
    return a + b;
}

 

3.新建一個頭文件

int sun(int,int);

 

1.動態調用dll庫

1.1新建一個控制台程序-> 空項目

1.2添加cpp和dll文件進入工程或者在工程屬性->VC++目錄->添加dll文件的目錄(大概是哪個都行)

1.3工程屬性->常規->字符集->使用多字節字符集

1.4 在cpp文件中寫入demo

#include <iostream>
#include <windows.h>
/*
Windows頭文件中包含可以加載DLL的函數。 
*/
typedef int(*ptrSub)(int, int);
/*
在調用DLL函數之前,要定義函數指針,用來調用函數。
可以看出,函數指針的類型與DLL中的要一致。
*/
HMODULE hMod = LoadLibrary("testDLL.dll");
/*
    調用LoadLibrary函數加載DLL文件。加載成功,hMod指針不為空。
    這里也可以是一個地址加文件名
*/
int main()
{
    if (hMod != NULL) 
    {
        /*
        如果加載成功,則可通過GetProcAddress函數獲取DLL中需要調用的函數的地址。
        獲取成功,sum指針不為空。
        */
        ptrSub sum = (ptrSub)GetProcAddress(hMod, "sum");
        if (sum != NULL)
        {
            std::cout << "10 + 6 = " << sum(10, 6) << std::endl;
            /*獲取地址成功后,通過sum調用函數功能。*/
        }
        FreeLibrary(hMod);
        /*在完成調用功能后,不在需要DLL支持,則可以通過FreeLibrary函數釋放DLL。*/
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM