一、新建一个工程,选择DLL,在这里我们采用C 语言
DEV-CPP将自动生成两个文件:filename.h,filename.c
filename.c
==============================================
/* 下一行中,可以将dll.h替换为你的dll的头文件名 */
#include "dll.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
//如果添加函数在此添加
DLLIMPORT void HelloWorld ()
{
MessageBox (0, "Hello World from DLL!\n", "Hi", MB_ICONINFORMATION);
}
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
/* Returns TRUE on success, FALSE on failure */
return TRUE;
}
filename.h
============================================
#ifndef _DLL_H_
#define _DLL_H_
#if BUILDING_DLL
# define DLLIMPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
//如果添加函数声明在此添加
DLLIMPORT void HelloWorld (void);
#endif /* _DLL_H_ */
然后编译生成DLL文件
二、使用DLL文件
可以新建一个.c文件,也可以在新建工程中选控制台程序。
代码如下:
#include <stdio.h>
#include <stdlib.h>
//windows head file
#include "windows.h"
int main()
{
HMODULE hInst;
void (*CallDll)(void);
hInst = LoadLibrary("dllname.dll");
(FARPROC*)( CallDll)=GetProcAddress(hInst,"HelloWorld");
CallDll();
FreeLibrary(hInst);
return 0;
}
如果没有什么错误的话,编译、运行。