Ich habe eine WinForms-Anwendung, die ich irgendwann bei Mono ausführen möchte. Es verwendet jedoch einige P/Invoke gegen user32.dll, was zu offensichtlichen Problemen führen wird."Ignorieren" P/Invoke bei laufendem Mono
Dies ist jedoch keine kritische Funktionalität, nur einige Geschmacksstoffe. Daher möchte ich es ignorieren, wenn ich Mono starte.
Ich weiß, ich könnte nur eine #if-Anweisung verwenden, aber dann muss ich zwei verschiedene Baugruppen anbieten, was schlecht ist. Ich weiß, dass ich Runtime überprüfen kann, wenn ich in Mono laufe, aber das hilft mir nicht, die Deklarationen zu den Funktionen zu entfernen.
Also frage ich mich: Gibt es einen Weg, wo ich sagen kann "Wenn Mono läuft, ignoriere das komplett"? Wenn es hilft: Das P/Invoke-Zeug befindet sich in einer separaten CS-Datei und wird als Teilklasse implementiert.
Der Quellcode in Frage ist hier: http://pastie.org/588940
Es ist Teil meines Hauptformulars ist, das Überschreiben der WndProc Nachricht ein Element in das Systemmenü hinzuzufügen. (Einige andere Sachen wurden abgeschnitten). Mein Problem ist, dass, während der WndProc-Kram einfach ist, ich nicht weiß, was ich mit den beiden privaten externen Deklarationen machen soll - kann ich sie in eine andere (statische) Klasse einfügen, die ich einfach nie bei Mono anrufe? Oder wäre das russisches Roulette?
Btw, Sie wissen, dass Swiki bereits der Name der Wiki-Software ist, richtig? Http://en.wikipedia.org/wiki/Swiki –
Nur nach der Registrierung bereits, und jetzt wird es einige Treffer bekommen. Ich denke, dass ich es für 1.0 im Moment umbenennen. –