原dll说明: 
函 数 原 型 :int  WINAPI  TtSaveFingerToFile(unsigned  char*FingerBuf,char*strFingerName); 
函数功能:把内存中的图像保存到 bmp 文件中。 
函数参数:FingerBuf-存放指纹图像数据的缓冲区,缓冲区大小 304*256Byte。 
strFingerName-指纹文件名称,如 C:\finger.bmp。 
返回值: 成功返回 1,失败返回 0。 导入: 
[DllImport("MXOTDLL.dll", EntryPoint = "TtSaveFingerToFile", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 
public static extern int TtSaveFingerToFile(byte[] FingerBuf, string FilePath); 调用: 
string FilePath= "c:\finger.bmp"; 
TtSaveFingerToFile(FingerBuf,FilePath); 问题:我是打算把缓冲区的图像保存至c:\finger.bmp,函数也返回1成功,但c:\始终没有 finger.bmp这文件,请各位前辈指点下,估计是什么原因?
(红色是我自己估计出错的地方)

解决方案 »

  1.   

    string FilePath= "c:\\finger.bmp"; 
    TtSaveFingerToFile(FingerBuf,FilePath); 是这个笔误吗?
      

  2.   


    的确提醒了我双斜杠的问题,但不知道为什么  但c:\始终没有 finger.bmp这文件.根据原dll的说明:函 数 原 型 :int  WINAPI  TtSaveFingerToFile(unsigned  char*FingerBuf,char*strFingerName); public static extern int TtSaveFingerToFile(byte[] FingerBuf, string FilePath); 调用: 
    string FilePath= "c:\\finger.bmp"; 
    TtSaveFingerToFile(FingerBuf,FilePath); 我这样调用正确吗?
      

  3.   

    没碰到过,不过我做文件读写的时候有一个flush()的东东,可以44
      

  4.   


    这样看不出有什么不对。
    你可以先确认是否编码的问题 - FilePath是ASCII(用CharSet = CharSet.Ansi)还是Unicode(CharSet = CharSet.Unicode)。