Moment .. der geneigte Programmierer kennt wohl Dynamic Link Libs..
(vielleicht kommt das ' durch die Abkürzung, die sich mir aus der Amiga-Zeit
im Kopf gehalten hat) ..

DU sollst gar keine DLL schreiben. - Naja, MUSST nicht, KANNST aber ;)

Dein Programm stellt nur die DLL-API zur Verfügung.

Die DLL schreibt der, der seine Karte nutzen will.. und die wird dann halt von deiner
API "gelinkt" .. die API kennt nur z.B. "schalte_relais_an(relaisnummer)" - wie schon
geschrieben.. (natürlich auch "schalte_relais_aus(relaisnummer)" .. vielleicht noch so
ein wenig Info-Krams "Wieviele Relais hast du denn?" usw ..)

An sich nichts besonderes, denn was ist die (vom anderen hergestellte) DLL ? Nichts
anderes als ein Plugin - hatte ich die Entwicklung dahingehend falsch verstanden, das
du eh ein Plugin-Interface hast ? Mich wundert, das der Transfer Probleme machen
sollte .. mein letzter DLL-Loader ist zwar schon 12 Jahre her und in Object-Pascal ge-
schrieben, aber da hab ich damals komplette "Oberflächenfenster" reinpacken können.

Ich weiss nicht, welche Plugin-Variante du nutzt, aber gerade wenn du ja z.B. nicht
nur die Soundkartenauswertung nutzen willst, sondern Digibox oder FMS-Dekoder ein-
bringst - ich stelle demnächst die Interface-DLL zusammen mit der PSW vom Dekoder
vor - diese DLL ist dann dein "Tor zur Dekodierung" - oder du baust die DLL halt statisch
in deiner Plugin-Variante nach, mir egal ^^

Gruss,
Tim

*EDIT* PS: Damit es klar wird - 10 Karten heisst dann u.U. 10 .DLL Dateien, klar.. aber da
alle dieselbe API nutzen, wird das am einfachsten/schnellsten per FindNext() eingebunden.