winapi — как установить права доступа к файлам Windows в Qt / Stack Overflow

В моем приложении Qt 4.7.4 x64 C ++, которое я создаю в Qt Creator 2.5.0, я хочу дать всем полный доступ к файлу. я использую QFile::setPermissionsЯ считаю, что работает хорошо для Mac и Linux, но не работает для Windows. В соответствии с Qt setPermissions не устанавливает разрешения, Я должен использовать

SetNamedSecurityInfoA("C:\file.txt", SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL);

Но я не знаю, что нужно включить, чтобы это работало. Я старался:

#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 — то, что я хочу (я полагаю, SetNamedSecurityInfoW в моем случае, так как мои пользователи могут использовать ОС на любом языке), что я должен #include, чтобы иметь возможность использовать его? А еще лучше, как мне выяснить, что нужно включить #include, чтобы я знал, что в следующий раз мне нужно будет использовать Windows API?

2

Решение

SetNamedSecurityInfo


заголовок
Aclapi.h

Библиотека
Advapi32.lib

DLL
Advapi32.dll

1

Другие решения

Быстрый поиск в Google, вероятно, имел бы эта страница среди них лучшие хиты. Там вы можете увидеть, какой заголовочный файл и библиотека вам нужны.

1

По вопросам рекламы [email protected]