Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > C++/CLI + C# - проблемы под WinVista SP1


Автор: NightmareZ 12.4.2008, 15:22
Создаю на C++/CLI враппер над OpenGL. 
Подключаю к проекту на C#. 

При попытке обратиться к чему-нить из сборки на C++/CLI вылетает исключение "Невозможно загрузить файл или сборку "MakarovGraphics, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" или один из зависимых от них компонентов. Была сделана попытка загрузить программу, имеющую неверный формат.". 

В чём может быть проблема? На XP всё работало.

Автор: mr.DUDA 12.4.2008, 16:48
Установка VC++ Redistributable той версии, на которой компилировалось MakarovGraphics, может помочь решить проблему.

Автор: NightmareZ 12.4.2008, 19:54
Цитата(mr.DUDA @ 12.4.2008,  16:48)
Установка VC++ Redistributable той версии, на которой компилировалось MakarovGraphics, может помочь решить проблему.

Я поставил VS2008, открыл в ней этот проект, скомпилял и запустил....

Автор: mr.DUDA 13.4.2008, 11:32
NightmareZ, всё перекомпилировалось? Не осталось старых бинарников?

Автор: NightmareZ 13.4.2008, 12:07
Цитата(mr.DUDA @ 13.4.2008,  11:32)
NightmareZ, всё перекомпилировалось? Не осталось старых бинарников?

Я пробовал два варианта:

1. старые бинарники, которые были скомпилированы под XP и там хорошо работали.... по Вистой не пашут
2. новые бинарники (скомпилированные под Вистой).... та же проблема

Проблема, думаю, из-за связки C++/CLI + Виста.... может что-нить связано с правами? Компилять пробывал с /cli и /cli:pure

Автор: drokosho 7.1.2009, 04:24
Аналогичная проблема вот с этим проектом http://www.codeproject.com/KB/IP/packetfilteringnet.aspx :
Невозможно загрузить файл или сборку "TxFilterController, Version=1.0.3294.6738, Culture=neutral, PublicKeyToken=null" или один из зависимых от них компонентов. Была сделана попытка загрузить программу, имеющую неверный формат.

тоже виста sp1, правда на других виндах не пробовал.

Автор: evgeniikim 21.10.2009, 12:48
столкнулся с такой же проблемой, проблема оказалась в платформе под которую компилится, у меня х64 а врапер под х32.
Кто знает как это лечить?

Автор: PashaPash 21.10.2009, 16:47
evgeniikim, компилировать под x86, а не под AnyCPU. Если уже откомпилировано, и надо просто запустить - поменять платформу с помощью corflags.exe.

Автор: evgeniikim 21.10.2009, 18:22
PashaPash
Немного другая ситуация, программа компилится под разные платформы, в том числе под x64, так вот если программа компилится под х64, то враппер(он под х86, написан на С++) не хочет грузиться, выдает сообщение что неверный формат этой dll.

пытался сделать враппер под платформу х64, но результата не получил как и враппер под х64.

пользовался вот этим:
http://msdn.microsoft.com/en-us/library/9yb4317s(VS.80).aspx

 smile 

Вобщем разобрался, похоже нет возможности использовать х86 dll  - в x64 проектах.
Или может все таки есть возможность?

Автор: PashaPash 22.10.2009, 02:19
evgeniikim, не получится скрестить битность. вот общая схема: http://blogs.msdn.com/joshwil/archive/2005/04/08/406567.aspx

Автор: evgeniikim 22.10.2009, 11:10
спасибо.

мда, 
особо не сталкивался с 64 битностью в разработке, 
вот такая подложенная свинья получается - из-за одной библиотеки, нет 64-битной версии приложения.  smile 

Автор: makarov_dv 23.4.2013, 09:29
Цитата(mr.DUDA @ 12.4.2008,  19:48)
Установка VC++ Redistributable той версии, на которой компилировалось MakarovGraphics, может помочь решить проблему.

У меня была похожая проблема: среда разработки на 7 х64. В ХР х32 при попытке в C# приложении с++/clr библиотеки программа вылетала с аналогичной ошибкой. Добавил в инсталлер в Prerequisite галочку около Visual C++ 2010 Runtime Libraries (x86) - заработало. Спасибо за помощь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)