В моем приложении 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?
Быстрый поиск в Google, вероятно, имел бы эта страница среди них лучшие хиты. Там вы можете увидеть, какой заголовочный файл и библиотека вам нужны.