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

来源:互联网 发布:业务流程优化的目的 编辑:程序博客网 时间:2024/05/16 00:34

开发环境: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.cbpP.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_DLLint 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 0
原创粉丝点击