我想有關於這個包裝的LoadString Win32函數的意見。C++,Win32的LoadString包裝
int LoadWString(HINSTANCE hInstance_In, UINT uID_In, std::wstring &str_Out){
return LoadStringW(hInstance_In, uID_In, (LPWSTR)str_Out.c_str(), (int)str_Out.max_size());
}
,因爲它似乎按預期方式工作,問題更多的是使用字符串max_size個屬性作爲緩衝區的大小,這確實有一些負面的缺點?
這是未定義的行爲,ergo,你不能依靠它的工作。一方面,字符串將不知道它現在包含有效數據或該字符串有多長。使用臨時緩衝區和'str_Out.assign()'。 –