Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Обвязка native DLL через C++/CLI для .NET  (Прочитано 4769 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Raistlin
Гость
« : 05-09-2008 07:32 » 

Всем доброго времени суток.

Мне потребовалось использовать обычную Win32 DLL (Чистый C++, без .NET, собирается в VS2005 и VS2008) в проектах .NET.
Решил сделать обвязку - написать на C++/CLI еще одну библиотеку, оборачивающую каждый класс из Win32 DLL в класс .NET  Улыбаюсь
Насколько мне известно, это довольно распространенная схема, и мне требудется придерживаться именно такой архитектуры - в задании требуется сохранить интерфейс классов.

При использовании обвязки выбрасывается исключение
Цитата
System.BadImageFormatException (is not a valid Win32 application. (Exception from HRESULT: 0x800700C1))
Использую - т.е. подключаю к проекту на C# свою .NET библиотеку  и пробую обратиться к классам оттуда.

В итоге я написал небольшой тестовый проект: Win32 DLL  -- .NET DLL (Class Library) -- проект C#.NET и нашел причину - невозможно обвязать DLL, если в ее коде подключен любой заголовочный файл из библиотеки Boost, даже если не использовать бустовские классы в коде.
Без Boost все РАБОТАЕТ.

Нашел в инете пару подобных случаев, возникших при обвязке библиотек, использующих Boost - эти проблемы были не решены. Например: http://objectmix.com/dotnet/121318-not-valid-win32-application-exception-hresult-0x800700c1.html

Я использую:
Boost 1.35.0
Visual Stidio 2005 SP1, 2008 - в обеих Студиях абсолютно идентичные результаты
Windows XP SP2 x86.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines