#c #dll #windows-runtime #c -cx #etw
#c #dll #windows-среда выполнения #c -cx #etw
Вопрос:
Я использую трассировку WPP и должен вызывать служебные макросы WPP_INIT_TRACING
и WPP_CLEANUP
в соответствующее время.
Рекомендация для обычной библиотеки DLL на C — сделать это в DllMain
процессе присоединения / отсоединения.
Поскольку C / CX скрывает DllMain
внутреннюю vccorlib
часть, есть ли «безопасный» способ, которым я мог бы переопределить этот DllMain своим собственным и передавать вызовы в vccorlib после того, как я выполнил свои вызовы WPP?
Комментарии:
1. Хм, нет, vccorlib имеет обычную точку входа, __DllMainCRTStartup@12. Добавление собственного DllMain не является проблемой. Вы действительно пробовали это? Затем покажите нам и сообщите нам, что пошло не так.
2. Спасибо. По какой-то причине я обманул себя, полагая, что это невозможно при чтении MSDN. Вы правы, добавление DllMain работает нормально.
3. Здесь был бы потрясающий пример. Я получаю ошибки компоновщика при предоставлении собственного определения.
4. Nvm, просто пришлось перестроить. Похоже, эта подпись делает это:
BOOL WINAPI DllMain(_In_ HINSTANCE inst, _In_ DWORD reason, _In_opt_ void* pvreserved)