日期:2014-05-18  浏览次数:20809 次

c#调用以前的Dll问题,请前辈帮小弟看下代码,小弟先感谢了!
原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这文件,请各位前辈指点下,估计是什么原因?
(红色是我自己估计出错的地方)

------解决方案--------------------
string FilePath= "c:\\finger.bmp"; 
TtSaveFingerToFile(FingerBuf,FilePath); 

是这个笔误吗?

------解决方案--------------------
哈哈应该不是ls的问题,这样编译都会出错的哈
------解决方案--------------------
没碰到过,不过我做文件读写的时候有一个flush()的东东,可以44
------解决方案--------------------
探讨
...
public static extern int TtSaveFingerToFile(byte[] FingerBuf, string FilePath);

调用:
string FilePath= "c:\\finger.bmp";
TtSaveFingerToFile(FingerBuf,FilePath);

我这样调用正确吗?