首页 > 技术文章 > 利用C++11可变模板,封装调用dll导出函数

wuyaSama 2019-09-12 11:17 原文

起因

开发中经常需要动态调用一些导出函数,试着利用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);
}

流程很清晰,只是写多了看着不爽

推荐阅读