
Zitat von
FJK
Da ich aber in einer normalen Dll keine Objekt Orientierte Programmierung setzen darf, ...
Versteh' ich nicht ganz.
Ich mach das so: In der DLL gibt es eine "INIT" Function (gleich mit den oa Parametern), die eine "COMPORT" Klasse erzeugt.
die adresse dieser Klasse gibt er als neutrales "Handle"-Integer zurück, (dadurch braucht das aufrufende Programm die klasse nicht zu kennen.)
Bei jedem Function-Call bekommt die DLL als ersten Parameter (ist übersichtlicher) diese Handle und kann dann um eine Ecke herum die div. Methoden aufrufen
z.B.
Code:
// DLL
int ComPortInit( argumente......)
{
ComClass* pClass = new blabla
pClass->methode(xyz);
return (int)pClass
}
// Methode
int Whatever( int Handle, args....)
{
int result;
ComClass* pClass = (ComClass*)Handle;
result = pClass->Methode(args);
return(result):
}
// Aufruf
int MyHandle = ComPortInit(...)
int result = Whatever(MyHandle, args....)
Ach ja, da gehört noch das DLL-Brimborium dazu, damit man die DLL auch mit anderen Sprachen als C verwenden kann
Lesezeichen