C++ DLL erstellen

Registriert
Dez. 2009
Beiträge
213
Hi, im Internet habe ich zu dem Thema eingentlich kein brauchbares deutsches Tutorial gefunden, nur eines auf der Microsoft-Website, dei verwenden aber eine Haeder-Datei, ich will es ohne Haederdatei machen. Ich will die erstellte DLL nämlich in einer anderen Plattform aufrufen. Kann mir jemand sagen, wie ich eine DLL in MS Visual C++ erstelle? Ich bin auf Neues Projekt, Win32-Anwendung und dass auf DLL gegangen. Jetzt habe ich ein Projekt mit
3-Dateien: DllMain.cpp, Projektname.cpp und stdafx.cpp. Wo und wie muss ich hier jetzt meine Funktionen entragen?
 
[...] ich will es ohne Haederdatei machen. Ich will die erstellte DLL nämlich in einer anderen Plattform aufrufen.

Kapier ich nicht:
1. DLL und andere Plattform (darunter verstehe ich z.B. ein UNIX-basiertes System) werden sich nicht gut vertragen.
2. Eine Bibliothek ohne die exportierten Funktionen zu deklarieren? Schön ist das nicht...

Für C++ Projekte würde ich CMake empfehlen, damit kannst du dann u.a. auch VisualStudio Solutions erstellen. Geht natürlich auch für DLLs.

z.B. (Ohne Gewähr ;) )
Code:
# Will be display in MS VS
PROJECT(MySharedLibrary)

# All header files of your project
SET(HDRS
 Lib.h
)

# All source files of your project
SET(SRCS
 Lib.cxx
)

# The name of your library. => MyLib.lib (static/dynamic linking) and MyLib.dll (dynamic linking)
SET(LIBNAME
 MyLib
)

# Note the SHARED for dynamic linking
ADD_LIBRARY(${LIBNAME} SHARED ${SRCS} ${HDRS})

# Some include directories
INCLUDE_DIRECTORIES("C:/Libs/SomeLib/inc")

# Some additional dependencies
TARGET_LINK_LIBRARIES("SomeLib.lib")

# Debug postfix, i.e. MyLib.lib for release mode and MyLibd.lib for debug mode
SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES DEBUG_POSTFIX "d")

Btw, CMake hat auch eine nette Install-Funktion

Ach ja, auch noch wichtig:
Die zu exportierenden Funktionen/Methoden mit einem Export/Input Macro versehen. Da hilft googlen.
 
Zuletzt bearbeitet: (typo / export vergessen)
Zurück
Oben