| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Не могу запустить программу в другой системе |
| Автор: Dgedit 5.12.2010, 14:04 |
| Проблема такая: ОС - Vindows 7 64-x битная, VS 2010, проект на C#(.NET Framework 3.5) к нему подключается библиотека на C++. На той системе на которой стоит VS все работает нормально. Запускаю виртуальную машину с Windows XP на борту, .NET Framework стоит нужный, программа запускается нормально, но когда я нажимаю кнопку, нажатие которой вызывает функцию из DLL - получаю сообщение: System.DllNotFoundException: Не удается загрузить DLL "Func.dll": Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E) Естественно библиотека лежит в той же папке, и точки входа ни при чем, так как на семерке это работает(когда библиотека лежит в той же папке). Я так подозреваю что проблема в 64-х и 32-х битных приложениях. Но я уже все настройки вроде перепробовал и никак не помогает. Помогите... |
| Автор: jonie 5.12.2010, 15:43 |
| 1) пройтись по Сишной либе Depends-ом (прога такая). Убедиться что у вас стоит MS CRT нужной версии (если вы собирали собственно с динамической CRT). Подробнее в разделе C++ в прикрепленых темах. 2) поставить своей проге на C# явное указание процессора x86, а не any cpu как по умолчанию идёт. Т.е. если у вас cpp либа является x86, то и .NET прога должна явно указывать что хочет x86 |
| Автор: Dgedit 5.12.2010, 16:20 |
| Тут ужас какой-то. посмотрел Depends'om, обй файла, библиотека и exe ссылки на другие библиотеки идут на 64-х битные. Версии рантайм библиотек вроде совпадают на обоих системах за исключением х64 библиотек, так как я не могу их установить на виртуалку - там 32-х битная ХР стоит. Проблема похоже кроется в том что библиотека создается 64-х битной. Только вот поверьте, уже весь мозг сломал, не могу для С++ проекта найти где ему можно явно указать платформу - 32-х или 64-х битную Добавлено через 2 минуты и 21 секунду В настройках С++ проекта - платформа только одна на выбор - Win32 |
| Автор: jonie 5.12.2010, 16:40 |
| Dgedit, win32 это не платформа, это конфигурация как раз, а вот в ней уже можно выбрать как собирать . в общем идите в конфигурейшен менеджер, посмотрите там платформу в конфигурации win32 какую указали.... |
| Автор: Dgedit 5.12.2010, 17:05 |
| Ну вот я выбираю новую платформу для библиотеки а там на выбор только x64 |
| Автор: jonie 5.12.2010, 17:36 |
| Dgedit, ну если вы уверены что делаете все правильно, то вероятно у вас не стоит 32 битный компайлер |
| Автор: Dgedit 5.12.2010, 17:41 |
| |
| Автор: jonie 5.12.2010, 18:10 |
такой небывает. В сетапе проверьте что ставили, и, если надо, доставьте |