动态库函数头文件中有这样一个函数,
void OpenMedia(HANDLE hPlayer,LPSTR lpFilename,HWND hwndMain,HWND hwndVideoshow,RECT *pVideorect)对应到delphi中如何定义?

解决方案 »

  1.   

    如果Dll名字为my.dllprocedure OpenMedia(hPlayer: THandle, lpFileName: WideString, hwndMain: HWnd,
    hwndVideoshow: HWnd, var pVideorect: TRect); external 'my.dll';
      

  2.   

    OpenMedia 由extern "C" 导出的!
    还有delphi申明的时候加上cdecl 或者  stdcall或者pascal的申明
    具体看你c里面怎么定一的了!
      

  3.   

    我如lesstif()那样声明了,可是还是不行,
    在VC中是这样调用的,
    OpenMedia(mediaPlayer[newPlayer].hPlayer,(char*)(const char*)filename,this->GetSafeHwnd(),m_videoshow.GetSafeHwnd(),&rect)其中filename用了双重指针,
    在delphi中应如何做阿,还有,hwndMain是指一个窗体的句柄,
    是不是就是通过hwndMain:=Form1.Handle获得呢?
    请指教!3X
      

  4.   

    LPSTR在Delphi中有定义,LPSTR = PAnsiChar;用PChar就可以了
      

  5.   

    不行啊,我在delphi的应用程序中用了String、Pchar、PAnsiChar
    传递到DLL中读出来的每一个字母后面都跟了一个空格,
    好像不能构正常工作,
    请问有何解决的办法?!