vc 转delphi出错

vc 转delphi报错
H264_DVR_API long CALL_METHOD H264_DVR_Login(char *sDVRIP, unsigned short wDVRPort, char *sUserName, char *sPassword,LPH264_DVR_DEVICEINFO lpDeviceInfo, int *error,SocketStyle socketTyle=TCPSOCKET);
VC
typedef struct _H264_DVR_DEVICEINFO
{
char sSoftWareVersion[64];
char sHardWareVersion[64]; ///< 硬件版本信息
char sEncryptVersion[64]; ///< 加密版本信息
SDK_SYSTEM_TIME tmBuildTime;///< 软件创建时间
char sSerialNumber[64]; ///< 设备序列号
int byChanNum; ///< 视频输入通道数
int iVideoOutChannel; ///< 视频输出通道数
int byAlarmInPortNum; ///< 报警输入通道数
int byAlarmOutPortNum; ///< 报警输出通道数
int iTalkInChannel; ///< 对讲输入通道数
int iTalkOutChannel; ///< 对讲输出通道数
int iExtraChannel; ///< 扩展通道数
int iAudioInChannel; ///< 音频输入通道数
int iCombineSwitch; ///< 组合编码通道分割模式是否支持切换
int iDigChannel; ///<数字通道数
unsigned int uiDeviceRunTime; ///<系统运行时间
SDK_DeviceType deviceTye; ///设备类型
char sHardWare[64]; ///<设备型号
}H264_DVR_DEVICEINFO,*LPH264_DVR_DEVICEINFO;

//*** */向设备注册
enum SocketStyle
{
TCPSOCKET=0,
UDPSOCKET,
SOCKETNR
};

delphi 
function H264_DVR_Login(sDVRIP:pchar;wDVRPort:Word;sUserName,sPassword:pchar;    var LPH264_DVR_DEVICEINFO:_H264_DVR_DEVICEINFO;iError:PInteger;Style:PSmallInt)
:LongInt;stdcall;external  报Access Violation at address 6F6E6B6E Read of address 6F6E6B6E 错误
------解决方案--------------------
引用:
1.如果你定义iError为: iError: integer; 那调用时,要在iError前加@


Delphi/Pascal code
?



12345678910111213

type   SocketStyle = (TCPSOCKET=0,UDPSOCKET,SOCKETNR);   _H264_DVR_DEVICEINFO = record    ...  ……


按我上面说的第一步修改后还是出问题??

将SDK_SYSTEM_TIME后面的packed去掉!!!

SDK_SYSTEM_TIME = record
   year:Integer;///< 年。
    month:Integer;///< 月,January = 1, February = 2, and so on.
    day:Integer;///< 日。
    wday:Integer;///< 星期,Sunday = 0, Monday = 1, and so on
    hour:Integer;///< 时。
    minute:Integer;///< 分。
    second:Integer;///< 秒。
    isdst:Integer;///< 夏令时标识。
  end;