Почему Visual Studio связывает MSVCR90.dll (x86) на 64-битной платформе? - PullRequest
2 голосов
/ 06 августа 2011

Я пишу библиотеку для MATLAB (mex-файл).При разработке я использовал профиль отладки в Visual Studio 2008. В режиме отладки все нормально.MATLAB выполняет мою библиотеку правильно.

Когда я переключаюсь в режим пересылки в Visual Studio, MATLAB не может загрузить мою библиотеку (dll с именем .mexw64).Используя Dependency Walker, я увидел, что отладочная версия связывает MSVCR90D.dll (x64), но версия выпуска связывает MSVCR90.dll (x86).

Конфигурация отладки: / Конфигурация выпуска MDd: / MD

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 06 августа 2011

Да.Вы не включили свой 64-битный проект в конфигурации выпуска.

0 голосов
/ 29 мая 2012

У меня была такая же проблема.Используя средство обхода зависимостей, я обнаружил, что это была не моя программа, а Oracle oraocci11d.dll, скомпилированная с использованием Visual Studio 9, поэтому для нее требовался файл msvcr90d.dll.Я только что скачал библиотеку, скомпилированную в VS 2010

0 голосов
/ 06 августа 2011

Где-то может быть файл манифеста, в котором неправильно указана архитектура (как x86) libmsvcrt.

...