2009-02-16 3 views
0

Я нашел переводчика для C++ с C#, но он не работает. (Code2Code.net)C++ to C# Translator

Тестовые с соиЬ

int main(int argc, char** argv) 
{ 
cout << "Hello World"; 
return 0; 
} 

Результаты становится

public static int Main(string [] argv) 
{ 
cout << "Hello World"; 
return 0; 
} 

Мой вопрос к вам, это = это любой другой переводчик, который работает на C++ в C# (не нужно чтобы быть свободным)

+0

Этот сайт едва функционирует правильно. – Rayne

+1

Если вам не нужно, чтобы это было бесплатно, нанять программиста, чтобы это сделать. ;) – jalf

ответ

7

Я не знаю никого, так как этот вид перевода был бы очень сложно сделать. Вы пытаетесь перевести код, написанный на неуправляемом языке, на управляемый язык. Даже если бы вы смогли перевести код, у вас будет почти каждый метод, отмеченный как unsafe, что отрицательно повлияет на большинство преимуществ перехода на C# в первую очередь.

Это кажется плохой идеей - вы должны думать о переписывании приложения с нуля.

+0

Мой опыт подсказывает мне, что любая реализация программного решения должна быть тесно связана с платформой языка программирования => если не «преобразовать» код C++ в C++/CLI (как это было с Quake 2), он имеет быть реконструированным, извините. –

0

Я не думаю, что какой-либо механизм перевода для C++ -> C# мог бы сделать нечто большее, чем безопасное, немного набирать код шаблона (исправить базовый синтаксис) - поскольку фреймворки, используемые в C++ и C#, принципиально разные, и вы будете сталкиваются с проблемами, как только переводчик должен иметь дело с арифметикой указателей и тому подобным.

Учитывая сложный синтаксис C++ и сумасшедший материал, который вы можете сделать с ним (думаю, Boost) Я предполагаю, что любой переводчик рано или поздно столкнется с серьезными проблемами. См. this blog post для некоторых альтернативных предложений.

6

Мои предложения состоят в том, чтобы первоначально использовать C++/CLI для переноса над кодом C++ в управляемую среду. После работы в управляемом мире создайте новый код на C# вокруг него. Если есть ключевые области существующего кода, которые активно меняются, рассмотрите перенос на C# в этой точке.

0

Code2Code.net явно заявляет

Вы признаете, что эта страница не только половину работы.

...

В большинстве случаев, переведенный код не будет даже скомпилировать.