codeblocks中创建和调用动态链接库(dll)
来源:互联网 发布:js canvas drawimage 编辑:程序博客网 时间:2024/05/22 04:29
codeblocks中创建和调用静态链接库请参考:http://blog.csdn.net/kld1412/article/details/51628197
一、创建C语言动态链接库
1.建立。
File->New->Projects->Dynamic Link library->Go
给项目命名为:Dynamic library
删除项目中的main.c和main.h重新添加一个simple.c和simple.h
修改simple.h中的代码为:
#ifndef SIMPLE_H_INCLUDED#define SIMPLE_H_INCLUDED#ifdef __cplusplus#define EXPORT extern "C" __declspec (dllexport)#else#define EXPORT __declspec (dllexport)#endif // __cplusplus#include <windows.h>EXPORT int pow2(int a);EXPORT void upstr(char *str, char *s);#endif // SIMPLE_H_INCLUDED
修改simple.c中的代码为:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "simple.h"int pow2(int a){ return a*a;}void upstr(char *str, char *s){ int i; for(i = 0; i < strlen(str); i++) { if(str[i] >= 'a' && str[i] <= 'z') s[i] = str[i] - 'a' + 'A'; else s[i] = str[i]; } s[i] = '\0';}
2.编译(Build)。
编译完成后找到该project的的目录文件,打开Dynamic library/bin/Debug 这时可以看到生成的libDynamic library.a 、 Dynamic library.dll 、libDynamic library.def文件。
二、调用动态链接库
1.创建win32项目
File->New->Projects->Win32 GUI project->Go
给项目命名为:test_dll
删除项目中的main.cpp重新添加一个test_dll.cpp文件,然后再添加一个simple.h文件,并把上面simple.h中的代码复制到现在这个simple.h中。
修改test_dll中的代码为:
#include <windows.h>#include "simple.h"int APIENTRY WinMain(HINSTANCE h1,HINSTANCE h2,LPSTR l,int n){ int x = 2; char str[30]={"Dynamic library _win32"}; int t = pow2(x); char *s = (char*)malloc(sizeof(strlen(str))); upstr(str, s); if(t == 4) MessageBox(NULL, s ,TEXT("动态链接库测试"), MB_OK); else MessageBox(NULL, TEXT("error!!!") ,TEXT("动态链接库测试"), MB_OK); return 0;}
2.添加libDynamic library.a库文件
通常, Codeblocks并不知道库文件被使用和它的位置,我们必须声明库文件,让它在链接的时候不会出错。
选择菜单Settings->Compiler->Linker settings->Add 添加libDynamic library.a库文件。
除此之外,还需要把编译生成的Dynamic library.dll文件复制到该project的Debug目录下,(即复制到:Dynamic library/bin/Debug目录下)。
3.编译运行
添加完成后就可以编译运行了,运行结果如下。
至此,就完成了动态链接库的创建和调用。
注意:dll与lib的调用有一些差异。对于dll的调用,一定要注意满足:
- 在测试程序的工程中要加入DLL输入库。(即.a库文件)
- 在测试程序中包含DLL头文件。(#include ".h")
- 在适当的目录中放置DLL库。(博客中放置在与工程的.exe文件同目录下)
- codeblocks中创建和调用动态链接库(dll)
- Codeblocks创建和调用DLL动态链接库(C语言)
- Codeblocks创建和调用DLL动态链接库(C语言)
- codeblocks中创建和调用静态链接库(lib)
- C#创建和调用DLL动态链接库
- VS2008创建和调用DLL动态链接库
- QT动态链接库(DLL)的创建和调用
- 生成动态链接库dll和调用
- 动态链接库DLL创建和使用
- 【动态链接库】VC++2010中创建和使用动态链接库dll
- VC中使用动态链接库DLL:静态调用和动态调用
- VC中使用动态链接库DLL:静态调用和动态调用
- C/C++中动态链接库的创建和调用
- C/C++中动态链接库的创建和调用
- C/C++中动态链接库的创建和调用
- C/C++中动态链接库的创建和调用
- C/C++中动态链接库的创建和调用
- C/C++中动态链接库的创建和调用
- 机器学习--周志华--课后习题3.3答案
- LaTeX TeXworks编辑器插入.eps图片时,无法识别的扩展名eps
- mysq双宿主机搭建
- 说说PHP下的构造函数
- 山东第7届省赛 G Triple Nim 找规律
- codeblocks中创建和调用动态链接库(dll)
- 产品心经录笔
- win10 激活方法
- HDU2016
- 关于Java多线程基础的回顾
- BIOS 中断向量表
- duilib第四天 2016年6月10日
- 腾讯视频下载
- 在Kali Linux上安装LOIC