Einzelnen Beitrag anzeigen
Alt 10.07.2001, 15:53   #4
kfal
Newbie
 
Registriert seit: 21.05.2001
Alter: 56
Beiträge: 17


Standard

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*/
}
kfal ist offline   Mit Zitat antworten