看流星社区

 找回密码
 注册账号
查看: 2150|回复: 0

DLL回调EXE里的函数

[复制链接]

该用户从未签到

发表于 2014-8-5 08:49:17 | 显示全部楼层 |阅读模式
EXE call Dll里的函数,然后Dll里的函数callback EXE里的函数


/*EXE代码
  作者:SysProgram
*/

void Msg(TCHAR *str)
{
MessageBox(0,str,"Caption",0);
}

void CTestDlgDlg::OnOK()
{
// TODO: Add extra validation here

typedef void (*MY_FARPROC)(void (*MY_FARPROC)(TCHAR *str));

HMODULE hModule = LoadLibrary("C://TestDll//Debug//TestDll.dll");
MY_FARPROC FunAddress;

if (hModule == NULL)
{
  MessageBox("load dll error");
  return;
}
FunAddress = (MY_FARPROC)GetProcAddress(hModule,"TestMsg");

FunAddress(Msg); //将Msg的地址传入dll
}


//---------------------------------------------------------------------------------------------------------------------------



/*DLL代码
  作者:SysProgram
*/
#include <windows.h>

void TestMsg(void (*MY_FARPROC)(TCHAR *str))
{
MY_FARPROC("hehe");  //回调EXE里的函数
}

BOOL WINAPI DllMain(
     HINSTANCE hinstDLL,  // handle to the DLL module
     DWORD fdwReason,     // reason for calling function
     LPVOID lpvReserved   // reserved
)
{
if (fdwReason == DLL_PROCESS_ATTACH)
{
       //.........................
}
}
//----------------------------------------------------------------------------------------------

//导出函数
EXPORTS
TestMsg
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-30 18:07

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表