C++传地址转成delphi,该如何解决

C++传地址转成delphi
现有一个C++的demo程序,里面有这样一个函数声明:
int STDCALL PlayerExtProc(HPLAYER hPlayer, unsigned int nType, unsigned int nParam1, unsigned int nParam2);
在C++de demo中调用函数时是这样写的:
PlayerExtProc(m_hPlayer,101, (unsigned int)"admin", (unsigned int)"admin");


我转成delphi是这样的,声明:
function PlayerExtProc(hPlayer:HPLAYER;nType:integer;nParam1:integer;nParam2:integer):integer;stdcall;external 'XXX.dll';
这样调用:
var 
  s1,s2:string;
  s1:='admin';
  s2:='admin';
  PlayerExtProc(m_hPlayer,101,integer(@s1),integer(@s2));

但是这样调用不行,求达人指教,谢谢啦!

------解决方案--------------------
var
s1,s2:pchar;
s1:='admin';
s2:='admin';
PlayerExtProc(m_hPlayer,101,integer(s1),integer(s2));

------解决方案--------------------
你那个c++函数的调用比较怪异,串字面值常量在作为右值的时候会阴式转化为指针,(unsigned int)"admin" 这种强制转换如果理解为是取地址的话,那在delphi中专递一个pchar的地址就可以,你写的传递string的地址不行,因为string不是null结尾的。