Ist es möglich, C-Header mit dem Rad Studio XE C++ - Compiler zu kompilieren und sie mit Delphi-Code zu verknüpfen?Kann ich C-Header in Delphi verwenden?
So beseitigt die Notwendigkeit, Header-Dateien in Pascal zu konvertieren?
Der Grund für die Frage ist ..
C - Kopf Definition:
DLLEXPORT int url_engine_version(char *version, size_t length);
Versuch Delphi Definition
function url_engine_version(version: PByte; var length: cardinal): integer;
cdecl; external 'corplib.dll';
Haupt App versucht, es zu nennen mit:
engVer: Pointer;
engLen: cardinal;
engLen := 64;
GetMem(engVer,engLen);
url_engine_version(engVer,engLen);
Aber Delphi AV's, wenn es versucht, die Routine aufzurufen.
Working C# Definition - Küken funktioniert, wenn ich einen String predefinded als Länge 64
[DllImport("corplib.dll", CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.Cdecl)]
public static extern int url_engine_version(StringBuilder version, [Out] int length);
Ist stdcall nicht einfach? –
Sind Sie sicher, dass wirklich der Delphi-Code abstürzt und nicht die DLL-Funktion abstürzt? Die AV-Fehlermeldung zeigt Ihnen, zu welchem Modul der fehlerhafte Code gehört. –