(C++) Create a DLL using g++
February 24, 2017 · View on GitHub
(C++) Create a DLL using g++
Before being able to call a DLL, one has to create a DLL using g++ first.
To create a DLL using g++, do the following steps:
- Create a DLL entry point with a WinMain
- Create a unit with the functions you want to put in a DLL
- Build the DLL
UnitEntryPoint.cpp
//--------------------------------------------------------------------------- #include <windows.h> //--------------------------------------------------------------------------- int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) { return 1; } //--------------------------------------------------------------------------- int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { return 0; } //---------------------------------------------------------------------------
UnitFunctions.h
//--------------------------------------------------------------------------- #ifndef UnitFunctionsH #define UnitFunctionsH //--------------------------------------------------------------------------- #ifdef __cplusplus extern "C" { #endif __declspec (dllexport) const int GetAnswerOfLife(); #ifdef __cplusplus } #endif //--------------------------------------------------------------------------- #endif
The function put in the DLL is called GetAnswerOfLife and will return the value of 42. Note the #ifdef's before and after the function. These are obligatory!
Now the function GetAnswerOfLife must be defined in UnitFunctions.cpp. Upon viewing it, the code looks like below
UnitFunctions.cpp
//--------------------------------------------------------------------------- #include "UnitFunctions.h" //--------------------------------------------------------------------------- const int GetAnswerOfLife() { return 42; } //---------------------------------------------------------------------------
Building the DLL
Use the following g++ commands:
g++ -c UnitFunctions.cpp g++ -c UnitEntryPoint.cpp g++ -o Functions.dll UnitEntryPoint.o UnitFunctions.o
This should yield your first DLL.
Perhaps you now want to go to the calling a DLL page using g++.
Or download all source code of this page at once.