Entwickler-Ecke

Sonstiges (.NET) - Portierung C++ to C#!


DeadMatt - Di 05.08.08 10:19
Titel: Portierung C++ to C#!
Ich versuche zurzeit ein C++ Programm (native) in eine C# Programm zu portieren nur stosse ich auf einige Standard Funktionen wo ich ueberfragt bin wie ich die umschreiben soll.

Ich habe nach diesen Funktionen schon gegoogled aber IMO nichts zufriedenstellendes gefunden. Weiss evtl. einer von euch eine gute Moeglichkeit folgende Funktionen in .Net abzubilden.

SysAllocStringByteLen
SysFreeString
memcpy
CoCreateInstance
CString.Replace
CoCreateGuid
RpcStringFree

was ich noch gefragt haben wollte.
Der code enthaelt des oefteren
return S_FALSE;

der Rueckgabewert ist aller dings vom Typ long.... was macht der Code?


Christian S. - Di 05.08.08 11:29

Hallo!

Mit C++ kenne ich mich nur rudimentär aus, aber auf http://www.pinvoke.net findet man für viele Funktionen zum einen den Code, um die Windows-Funtkion in C# zu nutzen und oft auch eine Alternative in Form von Methoden des Frameworks.

Wahrscheinlcih kann man gezielt nur helfen, wenn man den entsprechenden Code sieht. Eine 1:1-Umsetzung von Code macht IMHO eh keinen Sinn, weil man dann den Vorteil neuer Herangehensweisen verliert.

Grüße
Christian


DeadMatt - Di 05.08.08 12:13

danke erstmal!

Leider finde ich zurzeit da kaum eine Loesung fuer mein Problem.

wie wuerdest du vorgehen um eine Entwicklung auf C# zu portieren? alles neu schreiben etc.?


Christian S. - Di 05.08.08 12:17

user profile iconDeadMatt hat folgendes geschrieben:
wie wuerdest du vorgehen um eine Entwicklung auf C# zu portieren? alles neu schreiben etc.?
Das kann man pauschal nicht sagen. Das kommt aufs Programm an. Die wichtigste Frage ist ja aber: Was versprichst Du Dir von der Portierung? :-)


DeadMatt - Mi 06.08.08 13:53

Ich habe halt diese nativen Code und die DLL die am ende raus kommt muss strong named sein ^^'


Greenberet - Mi 06.08.08 18:26

dann mach am besten ein VC## Projekt und lass es dann in .NET starten und deine richtige main Funktion aufrufen, so musst nix portieren und hast eine dll mit nem strong name ;)


DeadMatt - Do 07.08.08 10:21

so in die Ecke hab ich auch schon gedacht nur
a) muss aus dem anderen Projekt dann noch eine DLL erstellt werden?
b) wie mache ich sowas?! :D