Блокировка файлов с помощью C++ в Windows

Прежде всего, вы можете получить доступ к пользовательским значениям из вашего Plist. Чтобы получить доступ к пользовательскому значению из Plist, вам необходимо добавить следующий код:

extension Bundle {
    var apiBaseURL: String {
        return object(forInfoDictionaryKey: "serviceURL") as? String ?? ""
    }
}

Использование:

let appConfiguration =  Bundle.main.apiBaseURL

Ваш applicationDidFinishLaunching будет выглядеть следующим образом: [1116 ]

func applicationDidFinishLaunching(_ aNotification: Notification) {
    let defaults = UserDefaults.standard
    defaults.set(nil, forKey: "access_token")
    defaults.set(nil, forKey: "refresh_token")
    self.userLoggedOut()

    let em = NSAppleEventManager.shared()
    em.setEventHandler(self, andSelector: #selector(self.getUrl(_:withReplyEvent:)), forEventClass: AEEventClass(kInternetEventClass), andEventID: AEEventID(kAEGetURL))

    Constant.apiUrlString = Bundle.main.apiBaseURL
    Constant.applicationName = Bundle.main.appName
}

Кроме того, вам нужно будет проверить следующее

  1. Перейти к упаковке и проверить файл Info Plist. это должен быть ваш основной файл Info Plist.

  2. Проверить Info Plist Как вы выбрали пользовательское значение в файле Info Plist

enter image description here [1110 ] Info Plist File

5
задан 12 May 2009 в 17:08
поделиться

2 ответа

Вы можете просто использовать Win32 API CreateFile , а затем не указывать права совместного использования. Это гарантирует, что другие процессы не смогут получить доступ к файлу.

DWORD dwShareMode определяет тип совместного использования, который вы хотите, например GENERIC_READ. Если вы укажете 0, это означает, что права на совместное использование не должны предоставляться.

Пример:

HANDLE hFile = CreateFile(_T("c:\\file.txt"), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);

Если вы хотите заблокировать только определенную часть файла, вы можете использовать LockFile или LockFileEx .

Пример:

 //Lock the first 1024 bytes
 BOOL bLocked = LockFile(hFile, 0, 0, 1024, 0);

Информацию о блокировке на других платформах см. В моем сообщении здесь .

14
ответ дан 18 December 2019 в 10:48
поделиться

Вам нужна LockFileEx () (исключительная блокировка файла). Взгляните на это обсуждение из Поваренной книги безопасного программирования для C и C ++.

1
ответ дан 18 December 2019 в 10:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: