2009-08-25 10 views
0

Ich versuche, eine C# zu C++ mit Reflektor zu konvertieren. Der Code kompiliert, zerlegt und rekonstruierte Code erzeugt diesen Fehler:C++ öffentliche Funktion Syntaxfehler

1>c:\users\user\documents\visual studio 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2) : error C2059: syntax error : 'public'

1>c:\users\user\documents\visual studio 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2) : error C2143: syntax error : missing ';' before '{'

1>c:\users\user\documents\visual studio 2008\projects\reflect_readoo\reflect_readoo\readoo.cpp(2) : error C2447: '{' : missing function header (old-style formal list?)

Da ich nicht vertraut bin mit C++ Syntax ich nicht 100% sicher bin, wo mit diesen Fehlern zu starten. Das erste, was ich ausprobierte, war, den komplizierten Code zu entfernen und einfach das Ganze (es ist eine Klasse in einem Namensraum) nur ein Cout zu sein < < "test"; im Namespace und in der Klasse. entfernt das Schlüsselwort "Ref", das den oberen Fehler entfernt (dies verursacht eine Million neue Fehler mit allen Funktionen an Ort und Stelle), aber dann wurde gesagt, ein könnte nur einen Namespace verwenden, wenn mit dem Clr-Flag kompiliert, die etwas besiegen würde Punkt von dem, was ich versuche zu tun.

Kann mir jemand einen Testpfad empfehlen, den ich am Anfang führen könnte? Kann jemand sonst einen besseren Weg empfehlen, ein windows.form C# -Programm in unmanaged C++ zu übersetzen? Soll ich es einfach selbst machen? (Ich möchte das irgendwann trotzdem machen, aber es wäre eine große Hilfe, einfach das verdammte Ding zu haben und in der Lage zu sein, die Unterschiede zu durchschauen und schnell zu sehen, und ich brauche das Programm für mich so schnell wie möglich).

Vielen Dank für jede Hilfe, Beratung oder Anleitung.

Ich verstehe die Schwierigkeit mit der Präsentation Seite, ich hatte eigentlich nicht erwartet, dass das funktioniert, ich fragte nur aus einer verträumten Hoffnung. Ich möchte jedoch das "Backend" der Anwendung, die ursprünglich eine Konsolen-App war, übersetzen. dass ich einfach als eine Klassendatei meinem Windows-Formularentwurf hinzugefügt habe. Es ist nur diese Klasse von etwa 1000 Zeilen.

Schnipsel:

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 

}; 

für das dann verstehe ich, und verursacht die Unmöglichkeit ich dann annehmen, aber könnte jemand sein, um Art helfen, bitte mir die Fehler zu beheben seine Sammlung als verwaltete c verhindert ++?

+0

Können Sie ein Snippet des generierten C++ auflisten? Es klingt nach etwas ziemlich Einfachem. –

Antwort

4

Sie werden eine sehr schwierige Zeit jeden vernünftigen komplexe Windows Forms Anwendung von C# unmanaged C haben übersetzen ++.

Sie haben keinen Zugriff auf .NET Framework-Bibliotheken, dh auf Windows Forms. Sie müssen eine andere API für Ihr Fenster auswählen, z. B. MFC.

Im Allgemeinen bedeutet dies, dass Sie Ihre Anwendung vollständig umgestalten müssen - zumindest die Präsentationsseite. Meine normale Faustregel wäre, dies nicht zu tun - Sie haben eine funktionierende Anwendung, behalten Sie sie einfach.

+0

+1 Yep, sieht so aus, als ob Ihr Tool in C++/CLI konvertiert wurde, nicht in unmanaged C++. –

Verwandte Themen