burnersk Geschrieben 24. Juli 2007 Geschrieben 24. Juli 2007 Hallo. Ich möchte eine C# DLL für eine Verwendung in C, C++, C#, VB6 und VB .NET erstellen. Weitere Integrationsmöglichkeiten sind natürlich traumhaft. Kurz zum Hintergrund... > IDE: ShrapDevelop 2.2.0 Build 2595 > .NET Framework 2 Runtime + .NET Framework 2 SDK Deutsch > Zielplatform: zuerst Windows ab 98 SE. Dann evtl. Umstieg auf Mono für Linuxentwickler > Projekt: dev5ApS > Projektinfo: Erstellung einer DLL zur Absicherung von Software... Folgendes: > Zur Übersicht möchte ich gerne die internen Klassen in unterschiedliche Dateien/Klassen aufteilen. Von "außen" darf aber nur eine Connector-Klasse zur Verfügung stehen. > Alle Übergaben erfolgen ausschließlich in Long/String/ArrayString (Long als Fehlerrückgabe (public static long Main () {}) / Long, String und ArrayString als Rezerenzübergabe für Übergabe der Klasse/Funktion) Wie erstelle ich unterschiedliche Namespaces, die nur intern aufgerufen werden können (also nicht als Connector-Klasse fungieren). Wie erstelle ich eine Connector-Klasse? Oder Zugriff von "außen" auf jede öffentliche Namespace/Klasse
burnersk Geschrieben 24. Juli 2007 Autor Geschrieben 24. Juli 2007 Hi. Ich kann außerhalb des Namespace (im Projekt) nicht auf die Variablen zugreifen... /* * Erstellt mit SharpDevelop. * Benutzer: Besitzer * Datum: 24.07.2007 * Zeit: 18:51 */ using System; namespace dev5ApS.Datenstruktur { /// <summary> /// Datensatzklasse enthält Informationen über Softwarekunden /// </summary> public class DbUserData { /// <summary> /// sFirma speichert den Firmennamen des Softwarekunden /// Angabe ist optional /// </summary> public string sFirma { get { return sFirma; } set { sFirma = value; } } /// <summary> /// sName speicher den Vor- und Nachnamen des Softwarekunden /// </summary> public string sName { get { return sName; } set { sName = value; } } /// <summary> /// sAddress_1 speichert die Adresse des Softwarekunden /// </summary> public string sAddress_1 { get { return sAddress_1; } set { sAddress_1 = value; } } /// <summary> /// sAddress_2 speichert evtl. Zusatzinformationen für die Adresse des Softwarekunden /// Angabe ist optional /// </summary> public string sAddress_2 { get { return sAddress_2; } set { sAddress_2 = value; } } /// <summary> /// sZipCode speichert die Postleitzahl des Softwarekunden /// </summary> public string sZipCode { get { return sZipCode; } set { sZipCode = value; } } /// <summary> /// sCity_Town speichert den Wohnort des Softwarekunden /// </summary> public string sCity_Town { get { return sCity_Town; } set { sCity_Town = value; } } /// <summary> /// sEMail speichert die E-Mail Adresse des Softwarekunden /// </summary> public string sEMail { get { return sEMail; } set { sEMail = value; } } /// <summary> /// sLicenceCode speichert den Lizenzschlüssel des Softwarekunden /// </summary> public string sLicenceCode { get { return sLicenceCode; } set { sLicenceCode = value; } } /// <summary> /// sSpecials speichert für die Lizenzgenerierung benötigte Zusatzinformationen über den Softwarekunden /// Angabe ist optional /// </summary> public string sSpecials { get { return sSpecials; } set { sSpecials = value; } } } } Wie würdet Ihr auf eine Variable zugrifen? Erstmal den Datensatz erstellen mitprivate DbUserData cTest = new dev5ApS.Datenstruktur.DbUserData Und weiter???
MarkusLe Geschrieben 25. Juli 2007 Geschrieben 25. Juli 2007 Ich versteh ehrlich gesagt Dein Problem mit dem Variablenzugriff überhaupt nicht. Wenn Du mit andern nicht .NET Sprachen auf eine .NET Dll zugreifen willst, dann musst Du die .NET Dll mit regasm.exe auf dem Rechner registrieren und kannst sie genau wie jede andere COM Dll auch verwenden. MfG Markus
burnersk Geschrieben 25. Juli 2007 Autor Geschrieben 25. Juli 2007 Die DLL ist noch gar nicht programmiert. Ich muss erst mal herausfinden, warum ich die Variablen im NS dev5ApS.Datenbankstruktur nicht vom NS dev5ApS.Interface abfragen kann.
MarkusLe Geschrieben 25. Juli 2007 Geschrieben 25. Juli 2007 O_o 1. private DbUserData cTest = new dev5ApS.Datenstruktur.DbUserData Hier müsste dir eigentlich der Compiler bereits 2 Fehlermeldungen bringen. Richtig wäre: private DbUserData cTest = new dev5ApS.Datenstruktur.DbUserData(); Und auf die Eigenschaften zugreifen, das kannst Du wie in jedem C# Programm auch, mit cTest.PropertyName. Wenn Du die DbUserData Objekte beim Erstellen bereits mit Werten füllen willst, dann würde ich dir das Factory-Pattern emfehlen. MfG Markus
burnersk Geschrieben 25. Juli 2007 Autor Geschrieben 25. Juli 2007 Und da viel es ihm wie schuppen aus den augen... diese *unanständigen* klammern. Vielen Dank!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden