Это будет стоить вам гораздо дороже, чем конвертировать его и заплатить внештатному сотруднику (как я), который поможет вам, меняя код C ++ для вас каждые несколько месяцев (или каждые несколько лет), когда вам нужно менять. Есть некоторые механические подходы, но большая проблема в том, что вы никогда не можете быть уверены, что новый код C # делает именно то, что делал старый код C ++. У меня есть клиенты, которые попробовали это, и большинство сдалось и выбросило работу. Те, кто преуспел, делали это очень медленно, вот так:
Сначала вы оборачиваете старую библиотеку и получаете свой пользовательский интерфейс или любой новый код (веб-сервис, что угодно), успешно вызывающий старую библиотеку. Это заставляет всех «биться за доллар» и тратить время на решение проблемы «мы не можем поддерживать наш старый код». Вы также разрабатываете комплексный набор тестов, который доказывает, что старая библиотека делает для различных крайних случаев и странных вещей, которые случаются только в дикой природе каждые несколько лет. Со временем вы перемещаете функциональность из старой библиотеки в новую C # и изменяете вызывающий код, чтобы использовать новую библиотеку для этой функциональности. Вы перемещаете самые изменчивые части, то, что вы меняете чаще всего, в первую очередь. На каждом этапе вы снова запускаете тестовые примеры, чтобы убедиться, что ваш перевод с C ++ на C # не испортил результаты, которые он вычисляет. Возможно, что-то из этого вы никогда не покидаете, может быть, в конце концов, все это перемещено. Вы останавливаетесь, когда чувствуете, что не можете содержать свою собственную библиотеку и вынуждены платить кому-то за это, чтобы упасть ниже стоимости продолжения перевода.
Я рекомендую вам иметь доступ к человеку с хорошими навыками C ++ при запуске. Вы вероятно столкнетесь с вещами, которые не имеют большого смысла для вас. Но вы можете получить значение из библиотеки довольно быстро и в долгосрочной перспективе все же решить основную проблему.