Собрала Boost 1.4.4.
На этапе подключения (.hpp) выдает 2 ошибки:
error C3389: __declspec(dllexport) cannot be used with /clr:pure or /clr:safe
error C3395: 'boost::serialization::void_cast_register' : __declspec(dllexport) cannot be applied to a function with the __clrcall calling convention
отсылает к void_cast_fwd.hpp.
Сдается мне, что всё дело в ненативности windows forms (судя по тому, что студия пишет... На одном форуме нашла. что весь проект должен быть 100% нативен, это обязательное требование?? или его можно обойти? )
Подключаю к unmanaged классу...
P.S.: # define ModuleExport __declspec(dllexport) не помогло...
Здравствуйте, Annette, Вы писали:
A>Собрала Boost 1.4.4. A>На этапе подключения (.hpp) выдает 2 ошибки: A>error C3389: __declspec(dllexport) cannot be used with /clr:pure or /clr:safe A>error C3395: 'boost::serialization::void_cast_register' : __declspec(dllexport) cannot be applied to a function with the __clrcall calling convention A>отсылает к void_cast_fwd.hpp. A>Сдается мне, что всё дело в ненативности windows forms (судя по тому, что студия пишет... На одном форуме нашла. что весь проект должен быть 100% нативен, это обязательное требование?? или его можно обойти? ) A>Подключаю к unmanaged классу...
A>P.S.: # define ModuleExport __declspec(dllexport) не помогло...
Ну так русским же языком написано: cannot be used with /clr:pure or /clr:safe
Ставишь в настройках /clr:unsafe и используешь.
Boost + С++/CLI работает но иногда встречаются забавные баги.
Здравствуйте, fdn721, Вы писали:
F>Здравствуйте, Annette, Вы писали:
A>>Собрала Boost 1.4.4. A>>На этапе подключения (.hpp) выдает 2 ошибки: A>>error C3389: __declspec(dllexport) cannot be used with /clr:pure or /clr:safe A>>error C3395: 'boost::serialization::void_cast_register' : __declspec(dllexport) cannot be applied to a function with the __clrcall calling convention A>>отсылает к void_cast_fwd.hpp. A>>Сдается мне, что всё дело в ненативности windows forms (судя по тому, что студия пишет... На одном форуме нашла. что весь проект должен быть 100% нативен, это обязательное требование?? или его можно обойти? ) A>>Подключаю к unmanaged классу...
A>>P.S.: # define ModuleExport __declspec(dllexport) не помогло...
F>Ну так русским же языком написано: cannot be used with /clr:pure or /clr:safe
F>Ставишь в настройках /clr:unsafe и используешь.
F>Boost + С++/CLI работает но иногда встречаются забавные баги.
Спасибо, но в моей 2005 студии это не прокатывает
For this code to compile in Visual Studio 2005, in the Project menu select Properties > Build and then check "Allow Unsafe Code".
(в моей версии студии в свойствах проекта нет вкладки Build, а поиск в гугле кроме этого ничего иного не дал).
Извиняюсь еще за один не самый умный вопрос, мб с помощью изменений параметров компиляции можно достичь нужного эффекта???
Здравствуйте, Annette, Вы писали:
A>Извиняюсь еще за один не самый умный вопрос, мб с помощью изменений параметров компиляции можно достичь нужного эффекта???
Возможно, Вы озвучите саму задачу?
P.S: исходя из моего сугубо личного опыта (пилил как-то небольшую библиотечку-переходник на С++/CLI) могу порекомендовать полностью отделить managed и unmanaged части и связать их чем-то вроде COM. .NET использует собственные механизмы сериализации и имеет собственный набор классов коллекций. Я бы не стал смешивать .NET и boost.
Здравствуйте, Мишень-сан, Вы писали:
МС>Здравствуйте, Annette, Вы писали:
A>>Извиняюсь еще за один не самый умный вопрос, мб с помощью изменений параметров компиляции можно достичь нужного эффекта???
МС>Возможно, Вы озвучите саму задачу? МС>P.S: исходя из моего сугубо личного опыта (пилил как-то небольшую библиотечку-переходник на С++/CLI) могу порекомендовать полностью отделить managed и unmanaged части и связать их чем-то вроде COM. .NET использует собственные механизмы сериализации и имеет собственный набор классов коллекций. Я бы не стал смешивать .NET и boost.
использовать хочу для решения несложных задач лин алгебры (пока!! в смысле на данном этапе), ну например для решения системы линейных уравнений, по-моему для таких несложных задач можно решить проблему проще (чем через связывание отдельных частей, как вы предлагаете; хотя не исключаю, что в более сложных случаях придется так именно и поступать....)
Здравствуйте, minorlogic, Вы писали:
M>А разве в бусте есть решения систем линейных уравнений ?
Нашла кое-что http://osdir.com/ml/lib.mtl.devel/2004-09/msg00007.html
На правильность и пр. не проверяла, в виду описанных выше проблем...
Здравствуйте, Annette, Вы писали:
A>использовать хочу для решения несложных задач лин алгебры (пока!! в смысле на данном этапе), ну например для решения системы линейных уравнений, по-моему для таких несложных задач можно решить проблему проще (чем через связывание отдельных частей, как вы предлагаете; хотя не исключаю, что в более сложных случаях придется так именно и поступать....)
Так может вам и не нужен интероп? Если задачи действительно простенькие, либо делайте всё на том же C# (нужно просто и быстро делать формочки), либо на С++ с использованием файлов для ввода-вывода. К сожалению, интероп между разными рантаймами дело как правило заморочное и нетривиальное. Вам бы чего попроще ИМХО.