mirror of
https://github.com/Mr-X-GTA/YimMenu.git
synced 2025-06-17 23:07:26 +08:00
Fixed memory leak caused by not releasing the memory from GetWindowsVersion. (#2699)
This commit is contained in:
parent
3845d765f1
commit
59441b822c
@ -116,13 +116,13 @@ namespace big
|
||||
return value;
|
||||
}
|
||||
|
||||
LPSTR GetWindowsVersion()
|
||||
std::unique_ptr<char[]> GetWindowsVersion()
|
||||
{
|
||||
typedef LPWSTR(WINAPI * BFS)(LPCWSTR);
|
||||
LPWSTR UTF16 = BFS(GetProcAddress(LoadLibrary("winbrand.dll"), "BrandingFormatString"))(L"%WINDOWS_LONG%");
|
||||
int BufferSize = WideCharToMultiByte(CP_UTF8, 0, UTF16, -1, NULL, 0, NULL, NULL);
|
||||
LPSTR UTF8 = new char[BufferSize];
|
||||
WideCharToMultiByte(CP_UTF8, 0, UTF16, -1, UTF8, BufferSize, NULL, NULL);
|
||||
std::unique_ptr<char[]> UTF8(new char[BufferSize]);
|
||||
WideCharToMultiByte(CP_UTF8, 0, UTF16, -1, UTF8.get(), BufferSize, NULL, NULL);
|
||||
// BrandingFormatString requires a GlobalFree.
|
||||
GlobalFree(UTF16);
|
||||
return UTF8;
|
||||
|
Loading…
x
Reference in New Issue
Block a user