このコードはWindows7では機能しますが、Windows XPでは機能しません(スタートアップフォルダーパスの一部のみを出力します)
#include <iostream>
#include <shlobj.h>
using namespace std;
int main()
{
wchar_t startupFolder[1024];
HRESULT hr = SHGetFolderPath(0, CSIDL_STARTUP, 0, 0, startupFolder);
if (SUCCEEDED(hr))
wcout << L"Startup folder = " << startupFolder << endl;
else
cout << "Error when getting startup folder\n";
getchar();
return 0;
}
出力は次のとおりです。スタートアップフォルダ=C:\ Documents and Settings \ Admin\<-カーソルはここにあります。改行は提供されません。また、私はロシアのウィンドウxpを持っています。これはUnicodeの問題だと思います。
wprintfを使用すると、C:\ Documents and Settings \ Admin \ ???????? ....。
ありがとう。