![]() |
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. |
Ich kann jetzt nichts dazu sagen, aber versuch mal einen var Parameter auf einen WideString (Unicode).
...:cat:... |
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