起因
开发中经常需要动态调用一些导出函数,试着利用C++11特性封装一下
尝试
常规使用
typedef int WINAPI (*TMessageBoxA)(HWND hWnd,LPCSTR lpText,LPCSTR lpCaption,UINT uType);
if (HMODULE m = LoadLibraryA("user32")) {
if (FARPROC proc = GetProcAddress(m,"MessageBoxA")) {
TMessageBoxA msgBox = reinterpret_cast<TMessageBoxA>(fn);
msgBox(0,0,0,0); // call it ...
}
FreeLibrary(m);
}
流程很清晰,只是写多了看着不爽