DLL导出函数示例

来源:互联网 发布:小说淘宝网免费阅读 编辑:程序博客网 时间:2024/06/08 19:17

一. Dll导出工程

1. Visual Studio新建一个空工程命名为export, 设置为DLL类型.

2. 新建export.h文件, 写入如下代码

#ifdef  DLL_EXPORTS#define  DLL_API extern "C" __declspec(dllexport)#else#define  DLL_API extern "C" __declspec(dllimport)#endif//用于回调和初始化typedef void (__stdcall * pCALLBACK)( int *pResult);DLL_API  int API_Create(int *pParam, pCALLBACK Func);DLL_API  int API_Do(int *pParam);DLL_API  int API_Stop();class  DLL_API  FFEncoder {public:  FFEncoder(void);  ~FFEncoder(void);}

3. 新建export.cpp文件

#define  LPRSDK_EXPORTS#include "1.h"#include <stdio.h>int g_int = 1;int g_int = 1;DLL_EXPORTS int API_Create(int *pParam, pCALLBACK Func){g_int =2;return g_int;}DLL_EXPORTS int API_Do(int *pParam){g_int =3;return g_int;}DLL_EXPORTS int API_Stop(){g_int =4;return g_int;}


4. 新建.def文件

LIBRARY dll_exportEXPORTSAPI_CreateAPI_DoAPI_Stop

二. 测试工程

 Visual Studio新建另一个空工程, 命名为test, 设置为exe类型.

新建test.cpp

#include "..\export.h"void __stdcall Func( int *pResult){printf("callback resut!\n");}int _tmain(int argc, _TCHAR* argv[]){    int ret = API_Create(int *pParam, pCALLBACK Func);    ret = API_Do(int *pParam);    ret = API_Stop();}