Code::Blocks环境下创建并显式调用动态链接库

开发环境:Code:Blocks

版本:13.12

语言:C

用途:学习记录

step 1:创建动态链接库项目

File--New--Projects--Dynamic Link Library--Go


Project title: mydll

Folder to create project in:C:\Users\Administrator\Desktop\codeblocks\  P.S.随意,本例为用户桌面的codeblocks文件夹下

Project filename:mydll.cdp P.S.自动生成

Resulting filename:C:\Users\Administrator\Desktop\codeblocks\mydll\mydll.cbp P.S.自动生成


Next--Finish


Step 2:创建mydll.c和mydll.h文件

File--New--Files--C/C++ source--Go-- 选择C --Next 在C:\Users\Administrator\Desktop\codeblocks\mydll路径下创建mydll.c文件 勾选上debug和release

File--New--Files--C/C++ header--Go 在C:\Users\Administrator\Desktop\codeblocks\mydll路径下创建mydll.h文件

//mydll.c
#include "mydll.h" //自定义头文件用双引号
//其他人的一个程序实例
int DLL_EXPORT add(int x,int y)
{
    return x+y;
}
//mydll.h
#ifndef MYDLL_H_INCLUDED
#define MYDLL_H_INCLUDED

#ifdef BUILD_DLL
    #define DLL_EXPORT __declspec(dllexport)
#else
    #define DLL_EXPORT __declspec(dllimport)
#endif // BUILD_DLL

int DLL_EXPORT add(int,int);//函数类型+DLL_EXPORT关键字+函数名 形参类型代替形参

#endif // MYDLL_H_INCLUDED
Build--Build 编译,在C:\Users\Administrator\Desktop\codeblocks\mydll\bin\Debug下生成:libmydll.a libmydll.def mydll.dll三个文件

Step 3:创建新项目,显式调用mydll.dll

File--New--Projects--Console application--Go--选择C (同Step 1,下略)

Project title: mytest

重新编写main.c程序

#include <stdio.h>
#include <windows.h>
typedef int(*lpAdd)(int,int); //定义函数类型
HINSTANCE hDll; //DLL句柄
lpAdd add;
int main()
{
    hDll = LoadLibrary("simple.dll"); //加载 dll
    add = (lpAdd)GetProcAddress(hDll, "add");//通过指针获取函数方法
    printf("id = %d\n",  add(1,2) );//调用函数
    FreeLibrary(hDll);//释放Dll句柄
    system("pause");
    return 0;
}
参考资料: http://hi.baidu.com/hellosim/item/9ae4317168f4a74bee1e53cb









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值