C++ 模板函数封装 MessageBoxW: 简洁实现
您可以使用模板来实现这个函数,这样可以在明确类型的情况下尽可能精简代码。以下是一个示例的实现:
#include <Windows.h>
template<typename T>
auto MessageBoxWrapper(T message)
{
return [message](HWND hWnd, LPCWSTR lpCaption, UINT uType) {
return MessageBoxW(hWnd, message, lpCaption, uType);
};
}
int main()
{
LPCWSTR message = L"Hello, World!";
auto wrapper = MessageBoxWrapper(message);
HWND hWnd = nullptr;
LPCWSTR lpCaption = L"Caption";
UINT uType = MB_OK;
wrapper(hWnd, lpCaption, uType);
return 0;
}
在上面的示例中,MessageBoxWrapper 是一个模板函数,接受一个类型为 T 的参数 message。它返回一个 lambda 函数,该 lambda 函数是对 MessageBoxW 的封装。lambda 函数中的 message 参数使用传入的 message 参数。
您可以将 message 参数替换为您需要的 LPCWSTR 类型,然后使用 MessageBoxWrapper 函数来创建一个封装了 MessageBoxW 的函数。
原文地址: https://www.cveoy.top/t/topic/pDFX 著作权归作者所有。请勿转载和采集!