举一个c++动态链接库的例子
时间: 2024-03-13 14:42:42 浏览: 66
C++动态链接库实例
4星 · 用户满意度95%
好的,以下是一个简单的C动态链接库的例子:
首先,我们需要创建一个C源文件,例如test.c,包含以下函数的实现:
```c
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
void print_name() {
printf("My name is ChitGPT!\n");
}
```
然后,我们需要使用编译器将其编译为动态链接库,例如在Windows上使用Visual Studio编译器,我们可以使用以下命令:
```
cl /LD test.c
```
这将生成一个名为test.dll的动态链接库文件。
最后,我们可以在另一个C程序中使用test.dll中的函数,例如:
```c
#include <stdio.h>
#include <Windows.h>
typedef int (*AddFunc)(int, int);
typedef void (*PrintNameFunc)();
int main() {
HMODULE testDll = LoadLibrary("test.dll");
if (testDll == NULL) {
printf("Failed to load test.dll\n");
return 1;
}
AddFunc add = (AddFunc)GetProcAddress(testDll, "add");
if (add == NULL) {
printf("Failed to get address of add function\n");
return 1;
}
printf("1 + 2 = %d\n", add(1, 2));
PrintNameFunc printName = (PrintNameFunc)GetProcAddress(testDll, "print_name");
if (printName == NULL) {
printf("Failed to get address of print_name function\n");
return 1;
}
printName();
FreeLibrary(testDll);
return 0;
}
```
这个程序首先使用LoadLibrary函数加载test.dll动态链接库,然后使用GetProcAddress函数获取test.dll中的add和print_name函数的地址,并调用它们。最后,使用FreeLibrary函数卸载动态链接库。
这就是一个简单的C动态链接库的例子。
阅读全文