Я создал небольшую прототипную тестовую программу, которая работает со счетчиками производительности Windows, и все, кажется, работает нормально.Я переместил его в мою dll, которую загружает моя основная программа, и есть некоторые fprintf (stderr, "sometext"), которые вызывают нарушение прав доступа.
Я смотрю на это на SO и не нашел удовлетворительного ответа,Я знаю, что он работает нормально, когда он работает в основном потоке.Я предполагаю, что это из потока TIME_CRITICAL, который я порождаю, для опроса счетчика производительности.
- В чем причина этого нарушения доступа?В нем говорится «необработанное исключение в 0x7deadbeef в main.exe 0xC00000005. Чтение нарушения доступа из 0xFbeefdead».
- Каков подходящий способ печати на stderr из отдельного потока?
Кажется, это "случайный" тип, поскольку у меня есть printfs в начале функции опроса, котораяпечатать нормально.Внизу они бросают нарушение доступа.Почему некоторые printf / fprintf (stderr) работают нормально, в то время как другие терпят неудачу?
EDIT Я создаю поток с 0 в качестве параметра размера стека, который по умолчанию должен соответствовать размеру стека по умолчанию.Я подозреваю, что я выдуваю свой стек в этой теме, кто-нибудь знает это?https://docs.microsoft.com/en-us/windows/desktop/api/processthreadsapi/nf-processthreadsapi-createthread