帮我翻译(c->delphi)一下,关于指针(100分)

  • 主题发起人 主题发起人 xiaotian2002
  • 开始时间 开始时间
X

xiaotian2002

Unregistered / Unconfirmed
GUEST, unregistred user!
#define IPC_GETPLAYLISTFILE 211
/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
** char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);
**
** IPC_GETPLAYLISTFILE gets the filename of the playlist entry [index].
** returns a pointer to it. returns NULL on error.
*/
下面这句在delphi里怎么写啊
char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);
 
var p:pchar;
p:=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);
 
不行啊,kevincsg
[Error] Unit1.pas(149): Incompatible types: 'Integer' and 'PChar'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
 
var p:Integer;

p :=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);

 
p:=Pointer(SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE));
 
var p:^Integer;
 
卷起千堆雪tyn等:
他返回一个指针,应该是指针指向的地址吧
指向字符串的指针
我的目的要取这个字符串
完整代码??
 
真是苦恼!谢谢帮我up
 
char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);
----->>>

Var
Name : PChar;
NameI : Integer;
begin
NameI:=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);
ASM
PUSH DWORD PTR NameI
POP DWORD PTR [Name]
END;
end;
调试通过!!!
给分!!!

 
var
p: PChar;
...
p := Pointer(SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE));
ShowMessage(StrPas(p));
...
 
以上各位,我试过代码
但都不能取得winamp播放的文件名
const
WM_WA_IPC = WM_USER;
IPC_GETPLAYLISTFILE = 211;
函数说明说能得到文件名
IPC_GETPLAYLISTFILE gets the filename of the playlist entry [index].
请大家帮帮忙

 
IPC_GETPLAYLISTFILE = 211只能在插件里用
beta是对的
谢谢!
 
后退
顶部