Benutzer mit den meisten Antworten
Code aus VB in C# verwenden

Frage
-
Hallo,
ich habe einen Code für VB der mit einer DLL verbunden wo man sein Programm zeitlich beschränken. Nun ist meine Frage ob ich dieses auch auf C# anwenden kann?
Leider kann ich den Code nicht hier reinsetzen, da dieses durch den Ersteller geschützt ist und auch nicht gerade wenig gekostet hat.
Aber vielleicht kann mir ja trotzdem jemand helfen.
LG
jeanny26
Edit: Ich habe einen Converter im Web gefunden, http://www.developerfusion.com/tools/convert/csharp-to-vb/ hat jemand damit vielleicht Erfahrungen
ob dieser zuverlässig ist.
- Bearbeitet jeanny26 Freitag, 20. August 2010 08:07
Antworten
-
Hallo jeanny,
natürlich kannst du DLLs sowohl in VB.NET als auch in C# verwenden, nach dem du ein Verweis auf diese in den Projekteigenschaften gesetzt hast.
Wenn du den VB.NET Code nach C# übersetzen willst dann kannst du dafür eins der vielen Online Tools benutzen.
Ich nehme da immer gern den von DeveloperFusion erreichbar hier:
http://www.developerfusion.com/tools/convert/vb-to-csharp/Einfach den Code dort eingeben und übersetzen lassen. Meist muss man aber doch noch ein paar Kleinigkeiten anpassen.
MfG, Sebastian Gross- Als Antwort vorgeschlagen Frank Dzaebel Freitag, 20. August 2010 08:10
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 26. August 2010 09:20
-
sevlock http://www.tools4vb.com/software/sevlock.php
wie die dll erstellt wurden ist weiss ich nicht.
die DLL scheint demnach native (API style), mit 'Declare' angesprochen.
Der Hersteller liefert offenbar sowohl VB6 wie VB.NET Code, achte also auf die .NET-Variante!
Wenn du diesen VB.NET Code (welcher vermutlich 'Declare' nutzt?) automatisch konvertieren lässt,
besteht eine gewisse Gefahr dass nicht alle Attribute exakt nach C# 'DllImport' gewandelt werden können.
Falls dieser VB.NET Code doch schon 'DllImport' (.NET spezifischer) nutzen würde, würde die Wandlung nach C# eher exakter.
Am besten wäre schon, wenn der Hersteller da auch (garantiert geprüften/suporteten) C# Code bieten würde!
Ansonst musst du ggf halt diverse Konverter testen, ob diese die 'Declare' gut meistern.
(was AFAIK eher die Ausnahme ist, und mit Restrisiko)
Bei Problemen wärst du wohl eher auf der sicheren (durch Hersteller supporteten) Seite, wenn du den VB.NET Code in eine Assembly-Library einpackst und diese aus C# referenzierst.- Als Antwort vorgeschlagen Robert BreitenhoferModerator Freitag, 20. August 2010 09:26
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 26. August 2010 09:20
Alle Antworten
-
Hallo jeanny,
natürlich kannst du DLLs sowohl in VB.NET als auch in C# verwenden, nach dem du ein Verweis auf diese in den Projekteigenschaften gesetzt hast.
Wenn du den VB.NET Code nach C# übersetzen willst dann kannst du dafür eins der vielen Online Tools benutzen.
Ich nehme da immer gern den von DeveloperFusion erreichbar hier:
http://www.developerfusion.com/tools/convert/vb-to-csharp/Einfach den Code dort eingeben und übersetzen lassen. Meist muss man aber doch noch ein paar Kleinigkeiten anpassen.
MfG, Sebastian Gross- Als Antwort vorgeschlagen Frank Dzaebel Freitag, 20. August 2010 08:10
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 26. August 2010 09:20
-
ich habe einen Code für VB der mit einer DLL verbunden
Hallo,
Fragen nur zur Sicherheit:
1.) mit 'VB' ist echt VB.NET Source Code gemeint (also nicht etwa legacy VB6 Source)?
2.) was ist dies für eine Art von 'DLL',
möglicherweise ja eine native (unmanaged/C++) DLL, die aus VB zB mit 'Declare' (oder uU DllImport) angesprochen wird?
Denn je nachdem ist die optimale Vorgehensweise recht unterschiedlich... -
Hallo jeanny26,
Edit: Ich habe einen Converter im Web gefunden, http://www.developerfusion.com/tools/convert/csharp-to-vb/ hat jemand damit vielleicht Erfahrungen ob dieser zuverlässig ist.
Schau Dir mal an diese Tabelle wo die Code-Konvertern verglichen sind. Auf der ersten Zeile der Tabelle hast Du die Hyperlinks zu verschiedene Konvertern. Vielleicht hilft Dir auch diese Information.
How does Code Converter compare?
Grüße,
Robert
-
Hallo
hierbei handel es sich um das sevlock http://www.tools4vb.com/software/sevlock.php wie die dll erstellt wurden ist weiss ich nicht. Es gibt Beispielcode für VB ich bin mir eben nur nicht sicher ob dieses dann auch in C# verwenden kann.
LG
jeanny26
- Bearbeitet Robert BreitenhoferModerator Freitag, 20. August 2010 08:41 Hyperlink als Hyperlink
-
sevlock http://www.tools4vb.com/software/sevlock.php
wie die dll erstellt wurden ist weiss ich nicht.
die DLL scheint demnach native (API style), mit 'Declare' angesprochen.
Der Hersteller liefert offenbar sowohl VB6 wie VB.NET Code, achte also auf die .NET-Variante!
Wenn du diesen VB.NET Code (welcher vermutlich 'Declare' nutzt?) automatisch konvertieren lässt,
besteht eine gewisse Gefahr dass nicht alle Attribute exakt nach C# 'DllImport' gewandelt werden können.
Falls dieser VB.NET Code doch schon 'DllImport' (.NET spezifischer) nutzen würde, würde die Wandlung nach C# eher exakter.
Am besten wäre schon, wenn der Hersteller da auch (garantiert geprüften/suporteten) C# Code bieten würde!
Ansonst musst du ggf halt diverse Konverter testen, ob diese die 'Declare' gut meistern.
(was AFAIK eher die Ausnahme ist, und mit Restrisiko)
Bei Problemen wärst du wohl eher auf der sicheren (durch Hersteller supporteten) Seite, wenn du den VB.NET Code in eine Assembly-Library einpackst und diese aus C# referenzierst.- Als Antwort vorgeschlagen Robert BreitenhoferModerator Freitag, 20. August 2010 09:26
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 26. August 2010 09:20
-
Hallo jeanny,
in der beschreibung der DLL ist VB.NET als kompatibel gekennzeichnet, das bedeutet, dass du diese DLL sowohl in VB.NET und auch in C# Projekten nutzen kannst (auch wenn sie dort C# nicht explizit angegeben haben)
Wenn dort Codebeispiele für VB.NET Vorliegen kannst du diese mit einem Code Converter umwandeln sieheRoberts Auflistung.
Da diese DLL aber auch zu VB 5/6 kompatibel ist wird es wohl eine Unmanaged DLL sein, die du nicht einfach mit einem Verweis in das Projekt einbinden kannst (wie Thomas es schon vermutet hat). In diesem Fall müsstest du mit DLL Imports arbeiten, was aber auch nur halb so wild ist ;-)
Mehr dazu hier:
Mit C# arbeiten - Verwenden von Win32 und anderen Bibliotheken
http://msdn.microsoft.com/de-de/library/cc431203.aspx
MfG, Sebastian Gross