Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++调用dll

作者:狂神战天   发布日期:2026-07-01   浏览:90

// C++调用DLL示例代码

// 首先,确保你有一个DLL文件,并且知道它的导出函数名。
// 假设我们有一个名为 "example.dll" 的DLL文件,其中包含一个名为 "Add" 的导出函数。

#include <windows.h>
#include <iostream>

typedef int (*AddFunc)(int, int); // 定义函数指针类型,用于指向DLL中的函数

int main() {
    // 加载DLL
    HINSTANCE hGetProcIDDLL = LoadLibrary(TEXT("example.dll"));
    if (hGetProcIDDLL == NULL) {
        std::cerr << "无法加载DLL\n";
        return 1;
    }

    // 获取DLL中函数的地址
    AddFunc addFunc = (AddFunc)GetProcAddress(hGetProcIDDLL, "Add");
    if (addFunc == NULL) {
        std::cerr << "无法获取函数地址\n";
        FreeLibrary(hGetProcIDDLL);
        return 1;
    }

    // 调用DLL中的函数
    int result = addFunc(5, 3);
    std::cout << "5 + 3 = " << result << std::endl;

    // 卸载DLL
    FreeLibrary(hGetProcIDDLL);

    return 0;
}

解释说明:

  1. 定义函数指针类型typedef int (*AddFunc)(int, int); 这行代码定义了一个函数指针类型 AddFunc,它指向一个返回 int 类型并接受两个 int 参数的函数。这个类型将用于存储从DLL中获取的函数地址。

  2. 加载DLLHINSTANCE hGetProcIDDLL = LoadLibrary(TEXT("example.dll")); 使用 LoadLibrary 函数加载DLL文件。如果加载失败,返回值为 NULL,程序会输出错误信息并退出。

  3. 获取函数地址AddFunc addFunc = (AddFunc)GetProcAddress(hGetProcIDDLL, "Add"); 使用 GetProcAddress 函数获取DLL中指定函数的地址。如果获取失败,返回值为 NULL,程序会输出错误信息并卸载DLL后退出。

  4. 调用DLL中的函数int result = addFunc(5, 3); 通过函数指针调用DLL中的 Add 函数,并将结果存储在 result 变量中。

  5. 卸载DLLFreeLibrary(hGetProcIDDLL); 使用 FreeLibrary 函数卸载DLL,释放资源。

以上代码展示了如何在C++中动态加载DLL、获取其导出函数的地址并调用该函数。

上一篇:c++ unique_ptr

下一篇:dev c++怎么调试

大家都在看

c++闭包

c++向上取整的代码

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++怎么输入字符串

c++字符串切片

c++ functional

c++框架代码

c++格式化字符串

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站