C++ Dynamic Linked Library
-
Guten Tag miteinander,
Nun habe ich mich bisher ein wenig mit meinem ersten C++ Projekt auseinander gesetzt.
Geschrieben habe ich eine kleine Client / Server Applikation.
Nun möchte ich aber einige Funktionalität in eine DLL asulagern.Der Code meiner beiden Dateien welche ich als Test in der Library haben will seht ihr unten.
#ifndef __MAIN_H__ #define __MAIN_H__ #include <windows.h> /* To use this exported function of dll, include this header * in your project. */ #ifdef BUILD_DLL #define DLL_EXPORT __declspec(dllexport) #else #define DLL_EXPORT __declspec(dllimport) #endif #ifdef __cplusplus extern "C" { #endif void DLL_EXPORT SomeFunction(const LPCSTR sometext); int DLL_EXPORT AddFunction(int a, int b); #ifdef __cplusplus } #endif #endif // __MAIN_H__
#include "main.h" // a sample exported function void DLL_EXPORT SomeFunction(const LPCSTR sometext) { MessageBoxA(0, sometext, "DLL Message", MB_OK | MB_ICONINFORMATION); } int DLL_EXPORT AddFunction(int a, int b) { return a+b; } BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: // attach to process // return FALSE to fail DLL load break; case DLL_PROCESS_DETACH: // detach from process break; case DLL_THREAD_ATTACH: // attach to thread break; case DLL_THREAD_DETACH: // detach from thread break; } return TRUE; // succesful }
Nun generiert mir das ganze 3 Dateien.
Eine dll, eine def, und eine .a
Eigentlich möchte ich das ganze nun benutzen wie ich es von C# her kenne und einfach die dll beim linker angeben und danach die Funktionen benutzen.
Jedoch kennt er die Funktionen dann gar nicht, auch das .h File der DLL ist ihm nicht bekannt.
Was mache ich falsch ? Verstehe ich etwas nicht richtig ?
Zur Laufzeit das ganze einzubinden möchte ich eigentlich nicht. Es wäre schon so gedacht, dass ich diese DLL linken kann.
Danke für eure Antworten
Gruss
k3n0b1
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.