int  Syn_ ReadBaseMsgToFile 
(
int  iPortID,
char *  pcCHMsgFileName,
unsigned int * puiCHMsgFileLen,
char *  pcPHMsgFileName,
unsigned int  * puiPHMsgFileLen,
int iIfOpen
);
这是一个SDK开发包内的函数
请问如何在C#项目内引用这个函数呀 DLL为SynIDCardAPI.dll

解决方案 »

  1.   


        [DllImport("SynIDCardAPI.dll")]
        public static extern int Syn_ ReadBaseMsgToFile(
    int iPortID,
    StringBuilder pcCHMsgFileName, ////如果实参大于80则声明为byte[]
    unsigned int * puiCHMsgFileLen,
    StringBuilder pcPHMsgFileName,  ////同第二项
    unsigned int * puiPHMsgFileLen,
    int iIfOpen
    );
      

  2.   


    Syn_ReadBaseMsgToFile 与Syn_ ReadBaseMsg函数类似,读取ID卡内基本信息区域信息,并将读到的基本信息写进输入参数所指定的文件中。
    int  Syn_ ReadBaseMsgToFile (
    int  iPortID,
    char *  pcCHMsgFileName,
    unsigned int * puiCHMsgFileLen,
    char *  pcPHMsgFileName,
    unsigned int  * puiPHMsgFileLen,
    int iIfOpen
    );
    参数说明:
    iPort
    [in] 整数,表示端口号。参见Syn_ResetSAM。
    pcCHMsgFileName
    [in] 读取到的ID卡内文字信息,需要写入文件,此为由用户指定的文件名。
    puiCHMsgFileLen
    [out] 存储文字信息的文件的长度。
    pcCHMsgFileName
    [in] 读取到的ID卡内照片信息,需要写入文件,此为由用户指定的文件名。
    puiCHMsgFileLen
    [out] 存储照片信息的文件的长度。
    iIfOpen
    [in] 整数,参见Syn_ResetSAM。
    返回值:
    0 读基本信息成功
    其他 读基本信息失败(具体含义参见返回码表)SDK开发包内的函数是这样的
    这里的[out]类型的参数是什么意思? 我能接收这个[out]型的参数吗?
      

  3.   

    我这样引用到C#项目中 从 unsigned int * puiCHMsgFileLen,这行就开始出错了
      

  4.   

    不好意思,刚才写得太急
    out的意思为出参,这个参数会在调用时被修改
     试试下面的代码    [DllImport("SynIDCardAPI.dll")]
        public static extern int Syn_ ReadBaseMsgToFile(
        int iPortID,
        StringBuilder pcCHMsgFileName, ////如果实参大于80则声明为byte[]
        out uint puiCHMsgFileLen,
        StringBuilder pcPHMsgFileName,  ////同第二项
         oout uint  puiPHMsgFileLen,
        int iIfOpen
    );
      

  5.   

    我在VS里用了 unit 怎么提示没有命名空间呀
      

  6.   


    [DllImport("SynIDCardAPI.dll", SetLastError = true, CharSet = CharSet.Auto/*如果Auto不行,换其他*/)]
            public static extern int Syn_ReadBaseMsgToFile(
            int iPortID,
            string pcCHMsgFileName,       
            ref UInt32 puiCHMsgFileLen,  
            string pcPHMsgFileName,        
            ref UInt32 puiPHMsgFileLen,  
            int iIfOpen
            );            Syn_ReadBaseMsgToFile(n, strFileName1, ref puiChMsgFileLen, strFileName2, ref puiPhMsgfileLen, m);