Diverse probleme mit D2009.
D2006 funktioniert!
Aus
DLL!
Delphi-Quellcode:
// added song to Playlist
for i := 0 to fAlbumList.Count - 1 do
WAAddFile(Module1.hWNDParent, fFilePath + fAlbumList.Strings[i]);
Delphi-Quellcode:
function int_cds(mainwawnd: HWND; text: string; msg: Integer): Integer;
var
cds: COPYDATASTRUCT;
begin
cds.dwData := msg;
cds.lpData := PChar(text);
cds.cbData := lstrlen(cds.lpData)+1; {include space for null char}
result := SendMessage(mainwawnd, WM_COPYDATA, 0, LPARAM(@cds));
end;
function WAAddFile(mainwawnd: HWND; FilePath: string): Integer;
begin
result := int_cds(mainwawnd, FilePath, IPC_PLAYFILE);
end;
cds.lpData := PChar(text);
wird in der Anwendung wie folgt ausgewertet.
Delphi-Quellcode:
// Plugin send new Playlist entry
psAddPlaylistTitle:
begin
copyDataStruct := Pointer(BASSVIS_SetPlayState(@mVisParam, psAddPlaylistTitle));
Title := string(copyDataStruct.lpData);
frmMain.Plist.Add(Title);
frmMain.playlist.Items.add(ExtractFileName(AnsiLeftStr(Title, Length(Title) - 4)));
end;
kann hier übergeben in D2009 was ich will .. PwideChar oder PAnsiChar
cds.lpData := PChar(text);
in der Anwendung kommt immer ein falscher oder kein String an.
Auf was muss ich achten damit die Daten richtig ausgewertet werden.
Das problem ist das ich mit verschiedenen sprachen arbeite VB,NET,C usw..
Wie kann ich garantieren das in allen sprachen das richtige Ergebnis übergeben wird ?
gruss Emil