创建一个dll文件,并调用

我用的是code:blocks
1 创建一个动态链接库工程
main.h

#ifndef __MAIN_H__
#define __MAIN_H__

#include <windows.h>
#include <string>
/* To use this exported function of dll, include this header
* in your project.
*/

#ifdef BUILD_DLL
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif


#ifdef __cplusplus
extern "C"
{
#endif
//函数的形式
void DLL_EXPORT SomeFunction(const std::string sometext);

#ifdef __cplusplus
}
#endif

#endif // __MAIN_H__


main.cpp

#include "main.h"
#include <iostream>
#include <string>
// 这里是一个例子函数
void DLL_EXPORT SomeFunction(const std::string s)
{
std::cout<<s<<std::endl;
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
// attach to process
// return FALSE to fail DLL load
break;

case DLL_PROCESS_DETACH:
// detach from process
break;

case DLL_THREAD_ATTACH:
// attach to thread
break;

case DLL_THREAD_DETACH:
// detach from thread
break;
}
return TRUE; // succesful
}

构建完成,生成dll
2 新建一个控制台程序工程
在头文件中增加

typedef void(*someFunction)(std::string s);

在cpp中调用

#include "wtypes.h"
..
HINSTANCE hDll; //声明一个Dll实例文件句柄
hDll = LoadLibrary("testdll.dll");//testdll.dll动态连接库
someFunction f;
f = (someFunction)GetProcAddress(hDll,"SomeFunction");
f("Hello Dll!");

完成
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值