AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dll schnittstelle ohne ShareMem

Ein Thema von Blamaster · begonnen am 10. Nov 2014 · letzter Beitrag vom 11. Nov 2014
 
Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#1

Dll schnittstelle ohne ShareMem

  Alt 10. Nov 2014, 15:54
Delphi-Version: 7
Hi,

ich möchte eine unabhängige Dll Schnittstelle implementieren. Für ein Delphi Programm sollen also Dlls mit nahezu jeder Sprache erstellt werden können. Dadurch fällt die Verwendung von ShareMem oder FastMM flach.

Daher suche ich nun nach einer Lösung das ganze ohne Delphis hauseigenen Memorymanager umzusetzen.

Dabei gibt es nun wenn ich es bisher richtig gesehen habe zwei Möglichkeiten. Entweder die Verwendung von Pchar bei der man sich selber um die allokation/deallokation kümmern muss, sowie um einen Mechanismus um die passenden Speichergrößen zu reservieren.

Eine andere Möglichkeit ist die Verwendung von WideString was dann praktisch auf den COM Speichermanager hinaus läuft (OleAut32.dll).

Erstmal hörte sich nun die Verwendung von WideString als eine ziemlich gute Idee an. Allerdings habe ich nun gelesen das es da seitens Delphi eventuell zu problemen kommen kann.

Konkret möchte ich in meinem Programm folgende Funktion aus einer DLL die in beliebiger Sprache erstellt wurde einbinden:
function getParam(): WideString; stdcall; Problem ist wohl das Delphi den Rückgabewert als In/Out implementiert hat und sich das mit den meisten anderen Sprachen beißt in denen der Rückgabewert einer Funktion als reiner Out Parameter implementiert wird. (Access violation)

Sehe ich es nun richtig das ich um dieses Problem generell komplett zu umgehen lediglich auf den Rückgabewert WideString verzichten muss und das Ergebnis über einen var Parameter zurückgeben ?
procedure getParam(var resuString: WideString); stdcall;

Gruß und Dank
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz