Синтаксическая ошибка публичной функции c ++ - PullRequest
0 голосов
/ 25 августа 2009

Я пытаюсь конвертировать c # в c ++ с помощью рефлектора. Код скомпилированный, дизассемблированный и реконструированный код генерирует эту ошибку:

1> C: \ Users \ Пользователь \ документы \ визуальный студия 2008 \ проекты \ reflect_readoo \ reflect_readoo \ readoo.cpp (2) : ошибка C2059: синтаксическая ошибка: 'public'

1> C: \ Users \ Пользователь \ документы \ визуальный студия 2008 \ проекты \ reflect_readoo \ reflect_readoo \ readoo.cpp (2) : ошибка C2143: синтаксическая ошибка: отсутствует ';' до '{'

1> C: \ Users \ Пользователь \ документы \ визуальный студия 2008 \ проекты \ reflect_readoo \ reflect_readoo \ readoo.cpp (2) : ошибка C2447: '{': отсутствует функция заголовок (формальный список в старом стиле?)

Поскольку я не знаком с синтаксисом C ++, я не уверен на 100%, с чего начать с этими ошибками. Первым делом я попытался удалить весь сложный код и просто позволить всему этому (это один класс в пространстве имен) быть просто cout << "test"; в пространстве имен и классе. удалил ключевое слово «ref», которое удалило главную ошибку (это приводит к миллиону новых ошибок со всеми имеющимися функциями), но затем ему сказали, что можно использовать пространство имен только в том случае, если оно скомпилировано с флагом clr, что в некоторой степени победит смысл того, что я пытаюсь сделать. </p>

Кто-нибудь может порекомендовать путь тестирования, с которого я мог бы начать с самого начала? В противном случае, кто-нибудь может порекомендовать лучший способ перевести программу windows.form c # в неуправляемый c ++? Должен ли я просто сделать это сам? (В любом случае я хочу сделать это в конце концов, но было бы очень полезно просто иметь чертову штуку и иметь возможность просматривать и быстро видеть различия, и мне нужна программа как можно скорее).

Большое спасибо за любую помощь, совет или руководство.

Я понимаю трудности со стороной презентации, я на самом деле не ожидал, что это сработает, я просто спросил из мечтательной надежды. Однако я хотел бы перевести «бэкэнд» приложения, которое изначально было консольным приложением. что я просто добавил в качестве файла класса в мой дизайн формы Windows. Только в этом классе около 1000 строк.

сниппет:

public ref class RProgram {
    public:
        static System::String ^KeywordsLog = "Keywords.log"; // WHERE THE PROGRAM KEEPS ITS LOG

// classes. . . functions. . . the errors are reported on the first lines

};

для этого тогда я понимаю и допускаю невозможность, которую я предполагаю тогда, но может ли кто-нибудь быть настолько любезным, чтобы помочь мне устранить ошибки, препятствующие его компиляции, как управляемый c ++?

1 Ответ

4 голосов
/ 25 августа 2009

Вам будет очень трудно перевести любое разумное сложное приложение Windows Forms с C # на неуправляемое C ++.

У вас не будет доступа ни к одной из библиотек .NET Framework, что означает отсутствие Windows Forms. Вам нужно будет выбрать другой API для окон, например MFC.

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

...