CodeBlocks加载动态动态库

来源:互联网 发布:神奇宝贝火箭队 知乎 编辑:程序博客网 时间:2024/04/30 13:00

CodeBlocks新建一个Dynamic Link Library工程,工程名称叫做:dll,代码已由向导自己生成好了


这里函数就不写了

编译该工程,Ctrl+F9,完毕,关闭工程

再新建一个Project,名称为cbp,选择Console application,完毕

CodeBlocks比较特殊,如果调用已编译好的dll文件,需要使用到两个头文件windows.h和winbase.h,注意:windows.h一定要声明在winbase.h之前,否则会提示winbase.h中的DWORD未定义

把之前dll.dll生成的头文件包含进去,该头文件中将dll编译的代码设置成以标准C的形式输出,这样比较安全。这里我使用的是#include "\..\temp\dll\main.h"

接下来定义一个函数名为指针的声明,表明这是一个指针来自外部的函数

这里我使用的是typedef void(WINAPI *pfunction)(const LPCSTR sometext);

然后为函数指针声明一个实例,再声明一个句柄,用来存放库文件

不说了直接上代码:

#include <windows.h>#include <winbase.h>#include <stdio.h>#include "\..\temp\dll\main.h"typedef void(WINAPI *pfunction)(const LPCSTR sometext);int main(int argc,char *argv[]){pfunction pfu=NULL;HMODULE hlib=NULL;hlib=LoadLibrary("dll.dll");pfu=(pfunction)GetProcAddress(hlib,"SomeFunction");SomeFunction("DLL调用成功!");SomeFunction(*argv);FreeLibrary(hlib);return 0;}

原创粉丝点击