DLL Erstellen - Visual Studio 2008 - Ohne MFC
-
Hallo,
ich weiß nicht ganz ob ich hier richtig bin, ich hoffe trotzdem mir kann jemand helfen, bin schon schwerst am Verzweifeln.
Also Grundproblem:
Eigentlich will ich ja etwas in C# programmieren. Dabei muss ich auf eine WinLibary (SNMP) zugreifen.
Das ist mit C# wegen der Definitionen in der SNMP Libary schwierig bis unmöglich.
Mit C++ klappt das jedoch sehr gut und ich kann die Informationen auslesen die ich brauche.
Jetzt würde ich gerne mein derzeitig lauffähiges Konsolenprogramm in eine DLL verwandeln, damit ich dann von C# aus drauf einfach zugreifen kann.Ich habe schon alles Konsolenspezifische (int main) rausgenommen und Funktionen definiert. Ich würde dabei gerne die Funktion "BoxProperties" von meinem C# Programm aus benutzen.
extern "C" __declspec(dllexport)int BoxProperties(int NICNum); BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } int BoxProperties(int NICNum) { //Funktionsinhalt return <einen int> }
Ansonsten befinden sich nur 2 andere Methoden die diese Funktion benötigt und einiges an Header Zeug in dem File.
In Visual Studio habe ich jetzt versucht ein neues Projekt anzulegen mit: Visual C++/Win32 Projekt und dann DLL anhakerln. MFC hab ich nicht genommen, da das ja nichts mit MFC zu tun hat.
So will ich das ganze dann mit den Linker Einstellungen Projekteigenschaften/Konfigurationseigenschaften/Allgemein und dort Konfigurationstyp: Dynamische Bibliothek (.dll) ausführen, bekomme ich eine Dialogbox mit:
Ausführbare Datei für Debugsitzung
und dort sollte ich eine .exe Datei auswählen.
Ich nehme mal an, dass er dort die .exe Datei von meinem Programm will.So nun will ich natürlich diese .exe Datei erstellen und stelle wieder in den Optionen statt Dynamische Bibiliotehk (.dll) auf "Anwendung (.exe) um.
Will ich das nun laufen lassen, damit ich daraus meine DLL basteln kann, sagt er mir jedoch:
Fehler 1 fatal error LNK1561: Einstiegspunkt muss definiert werden.
Was auch logisch ist, daja meine DLL keinen Einsprungspunkt hat?
Nun bin ich in einen ewigen Teufelskreis gefangen - kann mich jemand erretten?
Liebe Grüße,
Eure Sandra
-
Achja ich hab mir diese Tutorial hier angeschaut:
http://www.functionx.com/visualc/libraries/staticdll.htm
Das ist eigentlich dasselbe, nur Visual Stdio 2005 und hier wird anscheinend einfach gebuildet und es klappt?
-
Du darfst nicht das Projektmodell auf EXE umstellen.
Entweder gibt Du eine EXE an, die Deinee DLL verwendet oder Du erzeugst in dieser Solution eine neue EXE als Projekt.