Zum Inhalt springen

C# DLL für Integration in C,C# .NET und VB6/VB.NET


burnersk

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 mit
private DbUserData cTest = new dev5ApS.Datenstruktur.DbUserData

Und weiter???

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...