Нарушение доступа Windows 7 - PullRequest
0 голосов
/ 10 мая 2018

Я пишу приложение на C #, которое содержит набор графических интерфейсов и использует DLL-оболочку C ++ CLR.Структура выглядит следующим образом:

C # APP -> C ++ / CLR DLL -> статическая библиотека C ++ Native Code

Я могу запустить приложение на моем компьютере разработчика (Windows Server 2012), а также наWindows 10 машина.Однако в Windows 7, когда приложение пытается загрузить DLL, происходит сбой с исключением из-за нарушения прав доступа.Я не могу понять, что в моей DLL вызывает сбой и почему это только в Windows 7. Все скомпилировано в 64-битной.Также я считаю, что это может быть связано с библиотеками наддува, которые я использую в своей статической библиотеке C ++, но я не уверен, почему это вызовет исключение только в Windows 7.

Редактировать:

Так что я делал больше отладки, и проблема возникает в LoadLibrary ("myDll.dll"), а не при любой инициализации.Это все еще происходит только на Windows 7, а не Windows 10.

1 Ответ

0 голосов
/ 15 мая 2018

Проблема была с буст-потоками. Моя статическая библиотека использует библиотеки повышения, которые внутренне используют потоки повышения Чтобы решить эту проблему, я добавил командную строку, определив /DBOOST_THREAD_DYN_LINK, в мою статическую библиотеку и в C ++ / cli wrapper dll. Это означает, что мне пришлось включить файлы dll для boost thread, chrono и system вместе с моей собственной dll. Почему это происходит только в Windows 7, а не в 10, я не уверен, но я предполагаю, что это связано с ядром в Windows 7 и с тем, как он работает с потоками наддува.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...