C++代码如下,无奈我功力不足,苦无办法翻译成delphi,只得请教高手了。struct  GDIOPERATION;
typedef GDIOPERATION  *PGDIOPERATION;
typedef VOID (WINAPI *GDIOPERATIONFUNC)( PGDIOPERATION pOper, PVOID pVal1, PVOID pVal2, PVOID pVal3 );typedef struct GDIOPERATION
{
PVOID pIs;
GDIOPERATIONFUNC  SetGDIText;
GDIOPERATIONFUNC  SetGDITextColor;
GDIOPERATIONFUNC  SetGDITextFormat;
GDIOPERATIONFUNC  SetGDITextPosition;
GDIOPERATIONFUNC  SetGDIGraph;
GDIOPERATIONFUNC  SetGDIGraphPen;
GDIOPERATIONFUNC  SetGDICanCalAll;
GDIOPERATIONFUNC  SetGDICanCalOne;
}GDIOPERATION, *PGDIOPERATION;

解决方案 »

  1.   


    type
      GDIOPERATIONFUNC = procedure(pOper: PGDIOPERATION; 
        pVal1, pVal2, pVal3:Pointer); stdcall;
      PGDIOPERATION = ^GDIOPERATION;
      GDIOPERATION = record
        pIs: Pointer;
        SetGDIText: GDIOPERATIONFUNC;
        //..... 下面照着写
      end;
      

  2.   

    改下顺序
    type
      // 定义结构体指针
      PGDIOPERATION = ^GDIOPERATION; 
      // 定义函数指针
      GDIOPERATIONFUNC = procedure(pOper: PGDIOPERATION;
        pVal1, pVal2, pVal3: Pointer); stdcall;
      // 结构体定义
      GDIOPERATION = record
        pIs: Pointer;
        SetGDIText: GDIOPERATIONFUNC;
        //..... 下面照着写
      end;
      

  3.   

    PGDIOPERATION pOper = (PGDIOPERATION)MV_GetDeviceParameter(hDevice,GET_GRAPHICAL_INTERFACE );char str[] = "二楼走廊"; 
    int Index = 2;              //叠加字符pOper->SetGDIText( pOper, (PVOID)str, (PVOID)(&Index), NULL);
      

  4.   

    很高兴看到sololie的热心回复,不过,我在翻译上面的叠加字符代码时,出错了:
      

  5.   

    var
      Oper:PGDIOPERATION ;
    begin
      Oper:=MV_GetDeviceParameter(hDevice,GET_GRAPHICAL_INTERFACE);
      Oper.SetGDIText(Oper, pchar('二楼走廊'), 2, NULL);
    end;
    出错:
    [DCC Error] UnMain.pas(175): E2007 Constant or type identifier expected只是var Oper:PGDIOPERATION 这行出错****不好意思,我以为在回复内容框中,可以按ctrl+enter换行,不想却变成了提交。
      

  6.   

    谢谢sololie,,按你的代码,终于搞定了。