Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dll schreiben für VB6 (https://www.delphipraxis.net/3418-dll-schreiben-fuer-vb6.html)

Dummbatz 11. Mär 2003 19:49


Dll schreiben für VB6
 
Hallo zusammen!

Ich hab mich nun nach einiger Zeit aktiven Delphi-Programmierens endlich mal an das Thema Dlls rangewagt. Das funktioniert auch soweit ganz gut.
Jetzt möchte ich eine Dll schreiben, die in VB6 verwendet werden kann. Das funktioniert soweit auch ganz gut. Mit einer kleinen Ausnahme: Ich bekomme ständig Probleme, wenn ich auf eine Dll-Prozedur zugreifen will, die Strings zurückliefert. Das führt regelmäßig zum kompletten VB6-Absturtz!
Ich hab schon alles mögliche probiert: String, ShortString, PChar . nichts!

Hat jemand eine Idee???

MfG Dummbatz.

sakura 11. Mär 2003 22:03

Ich kann jetzt nichts dazu sagen, aber versuch mal einen var Parameter auf einen WideString (Unicode).

...:cat:...

jbg 12. Mär 2003 12:45

PChar ist schon der richtige Typ. Du musst nur unter VB genug Platz schaffen, damit die Daten vom der DLL-Funktion geschrieben werden können. Strings solltest du immer als Parameter übergeben und die Länge als Result.

Delphi-Quellcode:
function MyDllCall(S: PChar; MaxLen: Integer): Integer;
begin
  Result := Length(MeinString);
  if S <> nil then StrLCopy(S, PChar(MeinString), MaxLen);
end;
Code:
Declare Function MyDllCall Lib "MeineLib.dll" (ByVal S as String, ByVal MaxLen As Integer) As Integer

Dim S As String
S = Space(256)
S = Left(S, MyDllCall(S, Len(S)))
MsgBox S


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 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-2025 by Thomas Breitkreuz