#define LIB_NAME "Xors3D.dll"
DECLARE_ALIAS(wrap_xAddMesh, LIB_NAME, "_xAddMesh@8", (int,int), void);
FUNCTION xAddMesh: dest,src
INLINE
PROC_ADDR(wrap_xAddMesh);
wrap_xAddMesh((int)dest,(int)src);
ENDINLINE
ENDFUNCTION
wobei die funktion unten wohl in c++ nicht notwendig sein wird.
vielleicht sollte ich erw?hnen, da? ich nen header f?r etliche funktionen so schreiben will.
ich frage hier auch nur, weil ich die einfachste unkomplizierteste l?sung suche, es gibt ja wohl verschiedene arten das zu l?sen.
auch alle importierten funktionen in eine klasse zu packen hab ich schon gesehen....
ich m?chts aber ganz simpel...
als erstes musst du die lib linken (Die wird beim erstellen der DLL erstellt)
Dann:
#define IMPORT extern "C" __declspec(dllimport) // wenn du die DLL mit extern "C" exportiert hast!
...
IMPORT BlaBlub(int a, int b);
Jetzt kannst du BlaBlub im Code verwenden...
wirst aber ein wenig experimentieren d?rfen :D
EDIT:
Schau dir mal das an, ist mir grad so in die H?nde gefl?gen :D
/* Programm Beispiel test.c */
#include <windows.h>
#define THE_DLL "Beispiel.DLL"
HINSTANCE hDLL;
typedef unsigned __int16 word;
/* Hier wir eine dll Funktion bekannt gemacht */
portinit(void)
{
typedef UINT (CALLBACK* LPINT)();
LPINT p;
p = (LPINT)GetProcAddress(hDLL,"PORTINIT");
return p();
}
/* Ebenso*/
inport(word Addr)
{
typedef UINT (CALLBACK* LPINT)(word);
LPINT p;
p = (LPINT)GetProcAddress(hDLL,"INPORT");
return p(Addr);
}
void main(void)
{
int in;
int addr = 0x3f8;
hDLL = LoadLibrary(THE_DLL);
if (hDLL == NULL)
{
/*Fehler beim oeffnen von*/
}
portinit();
in = input(addr);
/* fertig? dann schliessen */
FreeLibrary(hDLL);
}
/* Ende von test.c */
edit2:
http://www.functionx.com/visualc/libraries/staticdll.htm
mir gings um eine pure dll, ohne lib.
und eben die einfachste codesparendste art und weise.
dein zweites beispiel ist da schon nen guter ansatz.
#define THE_DLL "Beispiel.DLL"
HINSTANCE hDLL;
hDLL = LoadLibrary(THE_DLL);
p = (LPINT)GetProcAddress(hDLL,"PORTINIT");
return p();
wollte tats?chlich sozusagen nur wie in dem code die dll bekanntmachen, und unten sozusagen in einer zeile die funktionen jeweils importen, gleich mit etwaigen parametern etc.
der k?rzeste code sozusagen...
mmm und kein declspec in sicht!
kenns eigentlich nur mit Lib... ohne echt keinen plan ..
och dat probier und studier ich bis es geht.