Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Stringübergabe in eine Delphi Win32-DLL

  Alt 19. Aug 2012, 05:25
Wo ist der Einsprungspunkt?
Zumindest kann ich den in deinem Code nicht entdecken.

Beispiel aus meiner DLL!
C# Seite
Code:
        //BASSVIS_GetVersion
        public static string BASSVIS_GetVersion()
        {
            IntPtr ptr = BASSVIS_GetVersionPtr();
            if (ptr != IntPtr.Zero)
            {
                return Marshal.PtrToStringAnsi(ptr);
            }
            return null;
        }
        [DllImport("bass_vis.dll", EntryPoint = "BASSVIS_GetVersion", CharSet = CharSet.Auto)]
        private static extern IntPtr BASSVIS_GetVersionPtr();
Delphi Seite
Delphi-Quellcode:
function BASSVIS_GetVersion: PAnsiChar; stdcall;

const
  cverfor = '%d.%d.%d.%d';

var
  ver : TBASSVIS_VERSION;
  str : string;
begin
  ver := GetVersionNumber;
  str := format(cverfor,[ver.Major,ver.Minor,ver.Special,ver.Build]);
  result := PAnsiChar(Ansistring(str));

end;

gruss

Geändert von EWeiss (19. Aug 2012 um 05:42 Uhr)
  Mit Zitat antworten Zitat