Qt Creator 2.5.0 で構築している Qt 4.7.4 x64 C++ アプリでは、ファイルに対して全員にフル アクセスを許可したいと考えています。QFile::setPermissions
Mac と Linux では問題なく動作すると思いますが、Windows では動作しません。Qt setPermissionsによると、権限を設定していないため、使用する必要があります
SetNamedSecurityInfoA("C:\file.txt", SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL);
しかし、それを機能させるために何を#includeすればよいかわかりません。私は試した:
#ifdef Q_WS_WIN
#include "Windows.h"
#endif
ここで見つけたものに基づいています。しかし、コンパイルすると、C3861: 'SetNamedSecurityInfo': identifier not found
(他のいくつかの新しいエラーの中で) が発生します。
にマウスを#include "Windows.h"
合わせると、ツールチップ C:\Program Files\Microsoft SDKs\Windows\v7.0\include\Windows.h
が表示され、F2 を押してそのファイルにジャンプできます。プロジェクトには、同じ Windows.h を含む他のファイルがあり、正常にコンパイルされます。
Windows で全員が読み取り/書き込みできるようにファイルのアクセス許可を設定するにはどうすればよいですか? SetNamedSecurityInfo が必要な場合 (私のユーザーは任意の言語で OS を実行している可能性があるため、私の場合は SetNamedSecurityInfoW だと思います)、それを使用できるようにするには何を #include しますか? さらに良いことに、#include するものをどのように見つければ、次に Windows API を使用する必要があるかがわかります。