| 

.NET C# Java Javascript Exception

2
Hier vielleicht eine etwas ungewöhnliche Sache. Wir entwickeln derzeit eine .Net/C# Anwendung. Die Vorgängerversion basiert noch zu weiten Teilen auf 16 Bit Visual C (Version 1.52c) Code. Sie ist mittels NTVDM unter jeder 32 Bit Windows Version lauffähig.

Bestimmte Funktionen der Neuentwicklung sollen in der Übergangsphase bereits aus der Legacy Anwendung verfügbar sein. Ähnliches wird bereits für 32 Bit unmanaged Teile gemacht. Dazu bietet die Win32 API die Generic Thunks Funktionalität (LoadLibraryEx()).

Der Plan sah nun vor, eine C++/CLI DLL zu erstellen, die die entsprechenden Funktionen exportiert. Nur scheint es nicht möglich zu sein, sowohl die CLR Compiler Option zu aktivieren, als auch C Exporte zu verwenden.

Gibt es entweder eine Möglichkeit, die Exporte bei aktivierter CLR Option zu realisieren oder einen anderen Weg das Ziel zu erreichen? Möglicherweise Service Aufrufe oder ähnliches?
31.03.2012
2 Antworten
1
Ok, der Weg, den ich geplant hatte, funktioniert. Es können nur keine Klassen exportiert werden, da sie selbst managed Typen sind.

Eigene Funktionen, die wiederum die Klasen verwenden, funktionieren jedoch.
31.03.2012
1
Sollte jemand selbst einmal vor diesem doch eher unüblichen Problem stehen:
Lasst die Finger davon!

Hintergrund: Wie beschrieben funktioneirt der Weg, .Net Code aus der NTVDM heraus auf zu rufen. Allerdings hat die NTVDM keine Möglichkeit mit Exceptions um zu gehen. Sobald eine Exception auf .Net seite ausgelöst wird, stürzt die NTVDM sofort einer Schutzverletzung ab.

Als Lösung empfehle ich hier den indirekten Datenaustausch. Ich selbst habe dazu zwei virtuelle COM Schnittstellen über ein virtuelles Nullmodem Kabel verbunden (http://com0com.sourceforge.net/). Darüber können beide Welten tadellos Daten austauschen. Ähnliches würde sicher auch mit anderen Schnittstellen funktionieren.
17.08.2012

Stelle deine Cplusplus-cli-Frage jetzt!