vs编译器与C++结合,并使用结合生成回调函数的使用

参考自己之前写的博客:这是模拟回调函数的调用:https://blog.csdn.net/Littlehero_121/article/details/100665262

一、首先是新建dll文件,具体的实现步骤可以参考博客:

https://blog.csdn.net/Littlehero_121/article/details/96159048

二、这边假定是已经完成了dll的新建,

1、则在dll的.h文件中如下代码:


#ifdef CALLLBACK_DLL_EXPORTS
#define CALLLBACK_DLL_API __declspec(dllexport) 
#else
#define CALLLBACK_DLL_API __declspec(dllimport) 
#endif

#include <windows.h>

#ifdef __cplusplus
extern "C"
{
#endif
    typedef void(*CallbackFun)(int);

    CALLLBACK_DLL_API void testfun_API(int times, CallbackFun pFun); //回调函数  
#ifdef __cplusplus
}
#endif

2、而在.cpp文件中加入如下的代码:

// Callback_dll.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include <iostream>
#include "Callback_dll.h"

void testfun_API(int times,CallbackFun pFun)  //模拟API函数或DLL函数
{
    for (int i = 0; i < times; ++i)
         pFun(i);
    printf("hello world\n");
}

3、因为dll文件没办法编译,所以就直接重新生成解决方案,所以就可以直接得到以下dll、lib和最后把.h一起考到新建的文件夹lib下面,如图所示:

好的,现阶段的dll部分已经完成

二、开始进行工程文件的建立,假设已经建立好了,目前就只需要一个源文件,在源文件中代码如下:

// ConsoleAppBrightCon.cpp : 定义控制台应用程序的入口点。
//
#include <stdio.h>
#include "windows.h"
#include <iostream>

extern "C"
{
#include "libs\Callback_dll.h"
}

//调用回调函数中的普通函数
void printWelcome(int len)
{
    printf("Welcome%d\n", len);
}

int main()
{ 
    //回调函数
    testfun_API(2,printWelcome);
    system("pause");
}

1、代码写入完毕,但是这边因为加入了库,所以需要注意几个问题,

(1)加载头文件的路径,如图所示加载进去你的库所在的路径

以上是绝对路径,则相对路径的修改如下:

 (2)在连接器中进行如下修改:添加dll目录

(3)在输入中加入lib,如图:

以上差不多就完成了回调函数的调用,结果如图所示:

 

具体源码参考: https://download.csdn.net/download/littlehero_121/11720884

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值