[C++] Dll erstellen

chriss_2oo4

Erfahrenes Mitglied
Hi,

ich bin in C++ nicht sonderlich belesen... bin eher Java und C# Fan. Ich soll eine Dll erstellen, die in C (nicht C in VS), sowie auch in andere Objektorientierte Sprachen, eingebunden werden kann.

Dazu hab ich ein paar Fragen:

Wenn ich jetzt ein Projekt in VisualStudio erstelle, dann läuft das ja über .NET, wodurch nicht in C verwendet werden kann... es gibt bestimmt eine Option, die es mir erlaubt einen "echten" C++-Code zu erstellen?

Des Weiteren dürfen die Funktionen nicht in Klassen definiert werden, um diese in C verwenden zu können, stimmt doch?

Um Dateien zu lesen und schreiben zu können muss ich Funktionen aus der WinAPI verwenden?

Vielleicht könnt ihr mir ja weiterhelfen.

Lg Chriss
 
Wenn ich jetzt ein Projekt in VisualStudio erstelle, dann läuft das ja über .NET, wodurch nicht in C verwendet werden
kann... es gibt bestimmt eine Option, die es mir erlaubt einen "echten" C++-Code zu erstellen?
Bei der Projekterstellung gehst du beim Projekttyp zu "Visual C++" und dann "Win32" und erstellst ein Win32-Projekt.
Etwas später bei den Anwendungseinstellungen wählst du dann "DLL".
Des Weiteren dürfen die Funktionen nicht in Klassen definiert werden, um diese in C verwenden zu können, stimmt doch?
Die Funktionen, die die DLL exportieren soll, müssen in einer bestimmten Form erstellt werden:
C++:
EXTERN_C _declspec(dllexport) int _stdcall MeineFunktion( ... )
{
    // ...
}
Innerhalb der Funktionen können dann aber auch Klassen verwendet werden.
Um Dateien zu lesen und schreiben zu können muss ich Funktionen aus der WinAPI verwenden?
Datei-I/O-Funktionen sind auch in der C - bzw. der C++ - Standardbibliothek enthalten. Man muss dafür nicht unbedingt
die WinAPI bemühen.

Gruß
MCoder
 
Hi MCoder,

danke für deine ausführliche und super schnelle Antwort,

Wegen der WinAPI, ich möchte eine Ini-Datei auslesen und deshalb, die in der kernel32.dll bereitgestellten Funktionen (GetPrivateProfileString, WritePrivateProfileString, ...) verwenden, oder gibt es dafür auch schon Funktionen in der Standardbiliothek?

Lg Chriss
 
Für eine INI-Datei sollte man auf jeden Fall die WinAPI-Funktionen verwenden. Die Standardbibliotheken bieten da nichts Vergleichbares.

Gruß
MCoder
 
Nochmal Danke!

Ich jetzt hab ichs aufgegeben in C++ Anwendungen zu erstellen:confused: -> extremst umständlich und zuletzt funktionierts nicht mal. Gibt es evtl auch eine Möglichkeit in C# solche Methode zu erstellen, die per dll in C verwendet werden können?

Ich könnte eine "Brücke" bauen -> c# code -> importieren in c++ (vs) und dort eine c-schnittstelle bereitstellen, aber gibt es da nix eleganteres direkt in c#?

Lg Chriss
 
Mit C# hast du keine Chance, eind Standard-DLL zu erstellen. Die von dir angedachte Brücke wäre wahrscheinlich deutlich komplizierter, als die DLL selbst.

Gruß
MCoder
 

Neue Beiträge

Zurück