DLL _stdcall Stress. :-(
-
Hallo Kollegen,
ich versuche eine .dll (mit Borland 6 erstellt) in .NET und Borland zu verwenden. Zu diesem Zweck habe ich eine .h Datei erstellt welche unter beiden Umgebungen das dynamische Einbinden der DLL bewerkstelligt.
Problem:
Beim Borland Compiler muss ich vor jeder Funktion __stdcall schreiben, sonst "Access violation....0x00..."
Bei .NET darf ich nicht __stdcall schreiben, sonst "Error C2059, syntax error...usw..."Wie muss das DLL Interface exportiert werden damit ich es mit einem Header in versch. Umgebungen einbinden kann.
Oder, wie muss die DLL Importiert werden damit ich ein Header file für versch. Umgebungen nutzen kann?Schnittstellen EXPORT der DLL:
#define EXPORT extern "C" __declspec(dllexport) #define VERSION 1.0 EXPORT double _stdcall GetDllVersion(void){return VERSION;}IMPORT:
#define IMPORT typedef __declspec(dllimport) IMPORT double (*GET_VERSION)(); GET_VERSION GetDllVersion; HINSTANCE hDll; hDll = LoadLibrary("Encoder.dll"); // if(hDll == NULL){ ShowMessage("Unable to load Encoder.dll"); }else{ GetDllVersion = (GET_VERSION)GetProcAddress(hDll,"GetDllVersion"); }DANKE
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL/CLX (Borland C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Das Macro
__BORLANDC__ in Verbindung mit #ifdef
#ifdef __BORLANDC__
# define AUSGABE __stdcall
#endifDes Weiteren
[url]http://www.marquardtnet.info/cecke/tutorials.8/8_dll.html#Der Im- und Export[/url]
-
Danke, das war eine gute Idee.
