C++/C++ Common

Callback function

doublerabbits 2022. 7. 18. 23:38

Callback function

 

  • EXE 함수를 DLL 에서 호출

 

DLL

extern "C" __declspec(dllexport) void __stdcall DLL_SetErrorFunction(LPVOID fp);

 

caller.h

void(*fpErrorFunction)(int errorNum);
void ErrorFunction(int errorNum);
void SetErrorFunction(LPVOID fp);

 

caller.cpp

caller()
{
  fpErrorFunction = NULL;
}

void caller::SetErrorFunction(LPVOID fp)
{
  fpErrorFunction = (void(__cdecl*)(int))fp;
}

void caller::ErrorFunction(int errorNum)
{
  if (NULL == fpErrorFunction)
  {
    return;
  }
  fpErrorFunction(num);
}

 

 

 

EXE

extern "C" __declspec(dllimport) void __stdcall DLL_SetErrorFunction(LPVOID fp);

 

called.h

static void __cdecl ErrorFunction(int errNum);

 

called.cpp

called()
{
  DLL_SetErrorFunction(ErrorFunction);
}

void __cdecl called::ErrorFunction(int errorNum)
{
  ...
}