Hallo zusammen,
eine Frage, die mir die Internetsuche nicht einleuchtend erklären konnte.
Wie setzt man C# "internal" in C++ um?
Ich verbessere momentan die Datenkapselung eines meiner Projekte und wollte nicht mehr allzu viele Klassen als public in die DLL exportieren, weil diese Klassen nur aus anderen Klassen innerhalb der DLL genutzt werden sollen - nicht von externen Programmen. Folgendes Beispiel mit Wunsch-Zugriffsoperatoren:
Public Application
Internal AudioManager
Internal GetAdapterCount()
Private GetAdapterCountCallback()
Erläuterung der Klassen / Methoden und ihrer Aufgaben:
Application: Diese Hauptklasse ist die einzige wirkliche public-Klasse. Von ihr wird in externen Programmen eine Instanz erzeugt.
AudioManager: Diese Klasse soll nur "innerhalb" der DLL sichtbar sein. Eine Instanz hiervon erstellt nämlich die Application-Klasse. Von außen sollen aber keine Instanzen erzeugbar sein, weder die Klasse überhaupt sichtbar.
GetAdapterCount(): Eine Methode, die von Application benötigt wird, um herauszufinden, wieviele Audio-Geräte im Rechner vorhanden sind.
GetAdapterCountCallback(): Eine Methode, die privat innerhalb des Audio-Managers aufgerufen wird. Für Application oder gar externe Anwendungen soll sie nicht sichtbar sein.
Ich hoffe, ich konnte so ein wenig erklären, was ich vorhabe: Klassen, die eben nur innerhalb der DLL sichtbar sind und nicht nach außen hin.
Wie kann ich sowas am besten machen? Momentan habe ich alle Methoden der AudioManager-Klasse private deklariert und dann Application als Friend-Class erwähnt. Allerdings hätte Application dann immer noch Zugriff auf GetAdapterCountCallback(). Und der AudioManager wäre nach außen hin sichtbar.