vs 中项目与 dll 一起调试和参数传递

1.打开 vs 创建项目
vs 中项目与 dll 一起调试和参数传递
2.添加项目
vs 中项目与 dll 一起调试和参数传递
vs 中项目与 dll 一起调试和参数传递
vs 中项目与 dll 一起调试和参数传递
3.配置 dll(exe的路径)
vs 中项目与 dll 一起调试和参数传递
4.调试的时候俩个都最好生成一下 不然报错

项目与 dll 之间的参数传递(结构体 函数指针等)

如DEBUG_EVENT 结构体 map<string, pVoidFun> (pVoidFun为函数指针)
先导出一个函数
vs 中项目与 dll 一起调试和参数传递
实现 这里要注意的是打印结构体时注意溢出问题

 //printf("%08x  %08x  %08x %08x  \n", hPorc, hThread, m_DebugEvent, Funmap);    //产生溢出 后面打印的是结构体的数据 因为后面覆盖了
    printf("%08x  %08x  %08x %08x  \n", hPorc, hThread, &m_DebugEvent, Funmap);

vs 中项目与 dll 一起调试和参数传递
5.调用 (这里用了点技巧参数为调用一个函数 函数返回值为 map)

 map<string, pVoidFun> Funmap;
 DWORD CCyichang::GetFunmapAddr()
{
    return (DWORD)&Funmap;
}
 myfun(myCCyichang->hProc, myCCyichang->hThread, myCCyichang->m_DebugEvent, (DWORD)(myCCyichang->GetFunmapAddr()));   //地址与类型(DWORD,map<string, pVoidFun>**)无关32 位push4个字节  64 位push 俩遍 也就是 8 个字节  类型只是用来方便使用想怎么写就怎么写

vs 中项目与 dll 一起调试和参数传递
vs 中项目与 dll 一起调试和参数传递
vs 中项目与 dll 一起调试和参数传递
vs 中项目与 dll 一起调试和参数传递
6.注意一个溢出问题
vs 中项目与 dll 一起调试和参数传递
7.最后注意的是不要懒 dll一般写也main 函数 不写可能会报错
vs 中项目与 dll 一起调试和参数传递

转载于:https://blog.51cto.com/haidragon/2115576

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值