Da ich manche Variablen und Arrays in mehreren Programmen nutzen will, wollte ich eine DLL programmieren.
Ich hab mir gedacht, ich könnte dort einfach eine Klasse erstellen, dort ein Array definieren, den einzelnen Elementen des Arrays Werte zuweisen und das Array dann in anderen Programmen nutzen.
Die Klasse habe ich so aufgesetzt (mit Namespace):
namespace buchstaben {
public ref class alpha_class { public: void zuweisung() { array ^alph = gcnew array(5);
Vorweg: Diese Frage wäre wohl besser im .NET-Brett aufgehoebn
Eine DLL ist wohl kaum dafür geeignet, das zu leisten, was du da willst. DLLs sind eher dafür da, Routinen und Strukturen programmübergreifend berreitzustellen.
Wie schon erwähnt ist diese Managed C++ Frage im .NET Brett tatsächlich besser aufgehoben, aber auch hier sehr leicht zu beantworten:
Du hast eine Methode zuweisung() in Deiner Klasse, die void zurückliefert.
Das Array deklarierst und befüllst Du ausschließlich in dieser Methode, es ist außerhalb der Methode nicht sichtbar.
D.h. Du brauchst auch irgendwo (außerhalb der Methode!) noch eine Deklaration
public array ^alph;
Das Problem ist aber, dass ich dem Anwender meines Programms nicht mein Array zur Verfügung stellen will (Also, dass er nicht einfach meine Textdatei öffnet!). Deswegen habe ich mir gedacht, statt die Datei zu verschlüsseln, das Array einfach in einer DLL zu definieren und somit vor ungewollten Blicken schützen will.
Zur anderen Antwort: Soll ich einfach in der DLL das Array als Public deklarieren oder nochmal neu in meinem Programm definieren?
Wenn ich dann aber die Arrays später in einer Replace()-Methode verwenden will, zeigt mir der Compiler Fehlermeldungen an, dass die Arrays nicht bekannt sind.
Wenn ich die Arrays in der Methode definiere, sagt mit der Compiler irgendwas mit dem Datentyp wchar_t.
Muss ich für die Replace-Methode also zwingend wchar_t Arrays definieren, kann ich mit der Replace-Methode überhaupt Zeichen durch Integer-Variablen ersetzen, oder liegt der Fehler wo anders?