![]() |
![]() |
|
|
|||||||
| Programmierung Rat & Tat für Programmierer |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
|
|
#1 |
|
Newbie
![]() Registriert seit: 21.05.2001
Alter: 56
Beiträge: 17
|
schreibe meien DLLs meistens so:
welchen exporttyp man auch immer will: #if 0 # ifdef DLL_EXPORTS # define DLL_API __declspec(dllexport) # else # define DLL_API __declspec(dllimport) # endif #else # ifdef DLL_EXPORTS # define DLL_API # else # define DLL_API # endif #endif /* ohne (dllexport) muss noch eine datei 'dll.exp' angelegt werden, in der */ /* fuer jede exportierte funktion so ein eintrag existiert: */ /* EXPORTS Info */ dll_source.c DLL_API long APIENTRY Info ( long lLen, char *pszInfo ) { long lRet=0; ... return (lRet); } benutzt wird eine dll dann folgendermassen (ohne lib und header muss aber trotzdem bekannt sein, welche parameter benoetigt werden!): HANDLE hMod; FARPROC procINFO; char szText[64]; hMod = LoadLibrary ("dll"); /* die dll wird im programm-verzeichnis */ /* und im PATH gesucht */ if (hMod != NULL) { procINFO = GetProcAddress ( pgdr->hMod, "Info"); if (!procInfo) { MessageBox (pgdr->hwndMain, "DLL nicht initialisiert!", "DLL", MB_OK); } else { lRet = (*procINFO)(sizeof (szText), szText); /* funktion aufrufen */ } FreeLibrary (hMod); /* DLL wieder freigeben*/ } |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|