Вызов CLP (решатель линейного программирования, написанный на C++) из C# .net в VS2013

Мне нужно вызвать CLP (решатель линейного программирования, написанный на C++) из C# .net (4.0, 4.5) в VS2013.

 http://www.coin-or.org/Clp/userguide/clpuserguide.html

У меня есть поиск некоторых ссылок о том, как вызвать C++ lib из C#.

Я нашел возможные варианты:

  1. используйте C# Warpper

    http://astarte.csr.unibo.it/coinORwrapper/coinORwrapper.htm

  2. Дизайн обёртки класса сам.

    http://www.codeproject.com/Articles/19354/Quick-C-CLI-Learn-C-CLI-in-less-than-minutes

    https://msdn.microsoft.com/en-us/library/ms235281%28v=vs.120%29.aspx

    https://social.msdn.microsoft.com/Forums/vstudio/en-US/299da822-5539-4e5b-9ba7-b614e564c9f4/presenting-a-c-library-lib-for-use-in-c-project

В CLP слишком много классов, поэтому я стараюсь не писать класс-оболочку для каждого класса. Это может вызвать слишком много ошибок.

Первый вариант не имеет документа на английском языке и содержит ошибки.

Есть ли другие способы вызова CLP из C#?

Спасибо

1 ответ

В качестве третьего варианта у вас есть P / Invoke. Но это беспорядок, с которым вам не следует сталкиваться, если вы не знаете достаточно C++, чтобы использовать C++ для вызова этой библиотеки.

Я не знаю, что именно вы хотите сделать с CLP, но рассматривали ли вы вопрос об использовании других продуктов, которые лучше взаимодействуют с вашим языком выбора? Например, может ли Solver Foundation стать альтернативным выбором?

Другие вопросы по тегам