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