0

リフレクターを使用して ac# を c++ に変換しようとしています。コンパイル、逆アセンブル、および再構築されたコードで、次のエラーが生成されます。

1>c:\users\user\documents\visual studio 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2): エラー C2059: 構文エラー: 'public'

1>c:\users\user\documents\visual studio 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2): エラー C2143: 構文エラー: ';' がありません 前 '{'

1>c:\users\user\documents\visual studio 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2): エラー C2447: '{' : 関数ヘッダーがありません (旧式の正式なリスト?)

私は C++ 構文に慣れていないので、これらのエラーをどこから始めればよいか 100% 確信が持てません。私が最初に試みたのは、複雑なコードをすべて削除し、全体 (名前空間内の 1 つのクラス) を単に cout << "test"; にすることでした。名前空間とクラスで。「ref」キーワードを削除し、これによりトップ エラーが削除されました (これにより、すべての関数が配置された状態で 100 万の新しいエラーが発生します)。私がやろうとしていることのポイント。

最初に頭を下げることができるテストのパスを誰かが推奨できますか? それ以外の場合、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 ++としてのコンパイルを妨げるエラーを解決するのを手伝ってくれるほど親切でしょうか?

4

1 に答える 1

4

ある程度複雑なWindows フォームアプリケーションを C# からアンマネージC++ に変換するのは非常に困難です。

.NET フレームワーク ライブラリのいずれにもアクセスできません。つまり、Windows フォームはありません。MFC など、ウィンドウ処理用に別の API を選択する必要があります。

一般に、これはアプリケーションを完全に再構築する必要があることを意味します - 少なくともプレゼンテーション側は。私の通常の経験則では、これをわざわざ行うことはありません。アプリケーションが動作しているので、そのままにしておくだけです。

于 2009-08-25T01:16:51.353 に答える