一、新建一个工程,选择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; }
如果没有什么错误的话,编译、运行。 
|