DllPrepareCall()
Allgemeines
Die Funktion DllPrepareCall() dient dazu, APIs aus DLLs aufzurufen, die nicht den Xbase++ Standards entsprechen. Dies bedeutet, dass diese Funktion generell für alle API-Aufrufe zu verwenden ist, bei denen die DLL nicht mit Xbase++ erstellt wurde.
In Xbase++ erstellte DLLs verhalten sich wie normale Xbase++-Programm-Module und benutzen die gleichen Aufrufkonventionen.
Syntax
DllPrepareCall( <cDllName>|<nDllHandle>, [<nCallingConv>], <cFuncName>|<nOrdinal> ) --> cCallTemplate
Parameter
cDllName/nDllHandle - hier kann alternativ der Name der zu verwendenden DLL angegeben werden, oder ein DLL-Handle, wie er von der Funktion DllLoad() zurückgegeben wird.
nCallingConv - gibt an, welche Art der Aufruf des APIs haben soll:
figurative Konstante | Umsetung |
---|---|
DLL_CDECL | C calling convention |
DLL_OSAPI | Calling convention for the operating system API |
DLL_STDCALL | Standard for the Windows 32bit API |
DLL_SYSTEM | Standard for the OS/2 API |
DLL_XPPCALL *) | Calling convention for Xbase++ DLLs |
- ) DLL_XPPCALL ist der Unterlassungswert.
Durch Addition mit einem Wert aus der folgenden Tabelle kann neben der Calling Convention auch ein Calling Mode festgelegt werden:
figurative Konstante | Umsetung |
---|---|
DLL_CALLMODE_NORMAL *) | Fastest mode, original parameters passed |
DLL_CALLMODE_COPY | Safest mode, callee uses a copy of passed parameters |
- ) DLL_CALLMODE_NORMAL ist der Unterlassungswert.
cFuncName/nOrdinal - gibt den Namen des auszuführenden APIs an. Die alternative Angabe der Folgenummer des API beschleunigt den Aufruf, da in diesem Fall das API nicht erst in der Symboltablle der DLL gesucht werden muss.
Rückgabewert
cCallTemplate - es handelt sich um einen Binärstring, der als erster Parameter an DllExecuteCall() übergeben werden muss.
Querverweise
benötigte DLLs bzw. Include-Dateien
Dll.CH
XbpRT1.DLL
Anwendungsbeispiel
siehe hierzu das Beispiel in DllExecuteCall()