Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#9

Re: PWideChar und PAnsiChar

  Alt 18. Apr 2009, 17:35
Zitat von himitsu:
ich sagte doch, du mußt auch die Daten ändern und nicht nur den Typ

quasi:
Result := PAnsiChar(AnsiString(PluginInfo));
Delphi-Quellcode:
// Temp{ein AnsiString} := AnsiString(PluginInfo);
Temp{ein AnsiString} := PluginInfo; // dank Autokonvertierung von Delphi auch so möglich
Result := PAnsiChar(Temp);
nur muß das Temp außerhalb der Funktion defniert sein, damit sie nicht bei Funktionsende freigegeben wird.
Ahh ..
Hab das nicht ganz verstanden.
So gehts jetzt!
Delphi-Quellcode:
function BASS_AIMP2VIS_GetName(handle: HVIS): PAnsiChar; stdcall;
var
  PluginInfo: PWideChar;

begin
  Result := nil;

  if (not A_ValidHandle(handle)) then
  begin
    BassFuncs^.SetError(BASS_ERROR_HANDLE);
    Exit;
  end;

  VisInfo := PAIMPVisInfo(Handle);
  PluginInfo := VisInfo^.VisPointer.PluginInfo;

  BassFuncs^.SetError(BASS_OK);
  Result := PAnsiChar(AnsiString(PluginInfo));

end;
Das Teufelszeug in Delphi mit der Konvertiererei. grmmm

gruss Emil
  Mit Zitat antworten Zitat