C lang: 封装C语言编写的DLL(Dynamic Link Library)

    技术2024-12-11  16

    C lang: 封装C语言编写的DLL(Dynamic Link Library)

    在 IntelliJ IDEA 中调用DLL的方法在 这里.

    1. 打开Visual Studio 2019 → \rightarrow 创建新项目 → \rightarrow Windows Desktop Wizad

    2. 选择Dynamic Link Library(.dll) 以及 Empty Project:

    3. 建立 头文件(encryptiondll.h) 以及 .c文件(encryptiondll.c).

    在 头文件(encryptiondll.h) 中声明需要暴露的DLL的接口函数: 在函数声明前加 “__declspec(dllexport)”,即可!

    __declspec(dllexport) void text_print(char* text);

    在 .c文件(encryptiondll.c) 中,完善函数体

    void text_print(char* text) { printf("%s", text); }

    4. 选择编译模式(Release/Debug)以及生成文件位数(x86/x64)

    5. Build Solution

    若,博主此时选择,release → \rightarrow x64,那么在项目的 x64 → \rightarrow Release 目录下则会生成对应的 .dll 文件。

    6. 使用C语言调用对应的动态链接库DLL,验证DLL是否有效:

    首先,需要copy 刚刚生成的 .dll文件到新的C项目的根目录中,

    然后,采用如下代码调用DLL:

    #include<Windows.h> #include<stdio.h> #include<stdlib.h> int main() { void (text_print)(char *) = NULL; HMODULE hdll = LoadLibraryA(("encryptionDLL.dll")); if (hdll == NULL) { system("error load"); } result = (void (char *))GetProcAddress(hdll, "text_print"); if (result != NULL) { text_print("Hello everyone!"); } return 0; }

    即可,得到结果,验证DLL封装成功!

    Processed: 0.068, SQL: 9