dll是windows下的动态链接库文件,下面记录一下在windows下如何调用C语言开发的dll动态链接库。
1.dll动态链接库的源代码
hello_dll.c
#include "stdio.h"
_declspec(dllexport) void test_print(char const *str)
{
printf("%s\n", str);
}
_declspec(dllexport) int test_add(int a, int b)
{
return a + b;
}
上面的代码定义了两个函数,第一个函数需要传入一个字符串,然后打印出这个字符串,第二个函数需要转入两个int型整数,然后返回这两个整数的和。
执行 cl -LD hello_dll.c 会生成hello_dll.dll文件
2.main函数的源代码
test_hello_dll.c
#include
#include
int main(int argc, char const *argv[])
{
// define two functional pointer
void(*p_test_print)(char const *) = NULL;
int(*p_test_add)(int, int) = NULL;
int add_result;
// load dll file, require window.h file
HMODULE module = LoadLibraryA("hello_dll.dll");
if (module == NULL) {
system("error load");
}
p_test_print = (void(*)(char const *))GetProcAddress(module, "test_print");
p_test_add = (int(*)(int, int))GetProcAddress(module, "test_add");
if (p_test_print != NULL) {
p_test_print("Hello This is from dll");
} else {
printf("function p_test_print can not excute");
}
if (p_test_add != NULL) {
add_result = p_test_add(5, 5);
printf("Add result is %d\n", add_result);
} else {
printf("function p_test_print can not excute");
}
FreeLibrary(module);
system("pause");
return 0;
}
执行 cl test_hello_dll.c 会生成test_hello_dll.exe的可执行文件。
运行该文件,可以成功调用dll文件中定义的函数。
- 航空母舰日本海军赤城号航空母舰,1941年夏天,后期上色。 目录 1 历史沿革 2 游戏性能 2.1 战斗流程 2.2 装备类型 3 舰船一览 3.1 普通图鉴 3.2 改造图鉴 3....
- 《qq飞车》端游一个月情侣贵族价格介绍qq飞车端游一个月情侣贵族多少钱?情侣贵族是《QQ飞车》这个游戏中的充值会员之一,下面游侠网小编给大家介绍qq飞车端游一个月情侣贵族价...
- 计算机中f4键的作用有哪些计算机中f4键的作用有哪些 发布时间:2020-12-29 09:43:00 来源:亿速云 阅读:570 作者:小新 栏目:互联网科技 这篇文章主要介绍计算机中f4键的...
- 哪里能买到划算的合约机?哪些套餐要避坑?广电升卿卡 本地归属地 29元192G流量 免费办理 电信藤枝卡 首月免月租 19元80G流量 免费办理 广电蛇年卡 流量可结转 29元99G流量 免费办理 流量卡...
- 短视频怎么剪辑和制作短视频以其简洁、直观且富有创意的形式深受大众喜爱,成为了一种极具影响力的内容传播方式。无论是记录生活点滴、分享知识技能,还是展...
- 2025年5月11日‘二手车模拟器’盛大开服暨玩家见面会 活动名称:2025年5月11日‘二手车模拟器’盛大开服暨玩家见面会 尊敬的玩家朋友们: 我们诚挚地邀请您参加《二手车模拟器》...
- 天境:时空裂隙的觉醒——2025跨服巅峰对决暨全服庆典盛典 活动详情 活动时间:2025年6月19日 00:00 至 2025年6月26日 23:59(持续7天) 🎉 核心玩法: 跨服巅峰战场:全服务器玩家将被分为四大阵...
- 超载地牢2025盛夏狂欢季:极限挑战赛暨周年庆典特别活动 活动详情 活动时间:2025年6月16日 00:00 至 2025年7月16日 23:59(UTC+8) 活动内容: 1. 周年限定副本「超载核心」:全新动态难度地牢,...
- 《星际行动:2025跨星系联合防御战役暨全宇宙玩家集结盛典》 ✦ 活动背景 ✦ 随着泽塔星系的量子风暴即将于3月29日抵达峰值,联邦司令部启动「穹顶计划」,号召全体指挥官在3.29-4.12期间完成星系防御...
- 黑神话悟空雷榍怎么获取 珍玩雷榍位置在哪里[多图]黑神话悟空雷榍作为一款可以增加我们耐力的珍玩,我们需要去哪里收集呢?今天,就跟随橙子小编的攻略一起来看看,这只古朴的戒指具体位...