Я хочу добавить поддержку журналирования в мой COM-объект (DLL), и обычно загружается как минимум два экземпляра этого объекта. Я хочу, чтобы обе библиотеки DLL могли записывать строки в один и тот же текстовый файл, но я обеспокоен тем, что это может вызвать проблемы. Можно ли этого достичь? Правильно ли я считаю, что один вызов Windows API WriteFile
является атомарным? Могут ли два процесса открыть один файл для записи?
Я бы хотел использовать STL для обработки файлов здесь (std::ofstream
), если это возможно. Моя другая идея состоит в том, чтобы использовать отдельный журнал для каждой DLL, но одним журналом было бы намного легче управлять.