Сбой приложения C # .Net X64 при использовании 64-битных DLL

1

У меня проблема с запуском приложения С# (WPF,.Net 4.0, Visual Studio 2010), предназначенного для x64 и использующего 64-разрядную DLL (сторонняя сторона).

Проблема возникает, когда я запускаю 64-битную версию с 64-разрядной dll (на 64-битной версии Win7/WindowsServer2003). Приложение начнет нормально. Но когда я нажимаю кнопку запуска в приложении, где приложение создает поток и начинает взаимодействовать с dll, поток вылетает/останавливается при первом вызове функции dll. Ниже приведена ошибка, когда я закрываю приложение.

Подпись задачи:

Проблема Название события: APPCRASH

Название приложения: DelayServer.exe

Версия приложения: 1.0.0.0

Временная метка приложения: 52092104

Имя модуля неисправности: KERNELBASE.dll

Версия модуля неисправности: 6.1.7601.17965

Временная метка: 506dcae6

Код исключения: e0434352

Смещение смещения: 000000000000bccd

Версия ОС: 6.1.7601.2.1.0.272.7

Идентификатор локали: 2057

Дополнительная информация 1: 7315

Дополнительная информация 2:
73159f4fb34892aabcc4ba245f14f64e

Дополнительная информация 3: d5ec

Дополнительная информация 4:
d5ec134b8e354c23783e48c0e2e572da

Я понимаю, что это возможно, если между EXE и DLL существует несоответствие, то есть EXE - 32-битная, а DLL - 64 бит или наоборот. Прилагается скриншот моих настроек. Я не нашел способ проверить/изменить настройки платформы x64.

x64 Снимок экрана настроек проекта

Мой компьютер разработки - Win Vista 32bit, и я установил 64-битные компиляторы.

У меня 32-битное целевое приложение, использующее 32-битную DLL, работающую нормально на 32-битных comupters. Сбой происходит, когда я запускаю 64-битное целевое приложение с 64-разрядной DLL на 64-битном компьютере

Я пробовал dependencywalker, но я не могу объяснить дальше, чтобы найти какие-либо зависимости.

Может кто-то, пожалуйста, помогите мне с этим.

Много спасибо Сэму

  • 0
    Итак, вы пытаетесь создать приложение x64 на компьютере x32?
  • 0
    Да. Это неправильно ?? Я полагаю, что я создаю для x64 как. Я выбрал это в целевой платформе, но я не знаю, как редактировать / проверять настройки для платформы x64.
Показать ещё 6 комментариев
Теги:
dll
64bit
visual-studio-2010

1 ответ

2

Я, наконец, решил проблему.

Когда я использовал средство диагностики отладки Microsoft (с http://www.microsoft.com/en-gb/download/details.aspx?id=26798), дамп сбоя показывает, что есть проблема с загрузкой моей внешней DLL или ее зависимостей. Затем я загрузил свою внешнюю dll в Dependency Walker (http://dependencywalker.com/), что показывает, что он не может найти зависимость msvcp100.dll, которая связана с Microsoft VC++.

Поэтому я установил Microsoft повторно распространяемый пакет (x64), и мое приложение больше не разбивается.

Спасибо всем за вашу помощь...

  • 0
    Пожалуйста, примите ваш ответ как правильный, чтобы мы могли легко увидеть, что проблема была решена. Смотрите принятие ответов . ;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню