3

Qt Creator 2.5.0 で構築している Qt 4.7.4 x64 C++ アプリでは、ファイルに対して全員にフル アクセスを許可したいと考えています。QFile::setPermissionsMac と 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 を使用する必要があるかがわかります。

4

2 に答える 2

1

SetNamedSecurityInfo

ヘッダー Aclapi.h

ライブラリ Advapi32.lib

DLL Advapi32.dll

于 2012-09-07T16:07:59.783 に答える
1

Google で簡単に検索すると、おそらくこのページがトップ ヒットに含まれていたでしょう。そこで、必要なヘッダー ファイルとライブラリを確認できます。

于 2012-09-07T16:08:09.823 に答える