我用Olympus相机的sdk开发一个考试拍照程序,用的ocx控件.它提供一个getpicture()方法将相机上的图片文件读入内存的byte[]数组(显示数组长度正确),然后我用fileStream存为jpg文件后,文件长度也正确,可就是打不开,也不能预览.用photoshop打开时说"jpg标志符长度不够".有人能给指点一下吗?
解决方案 »
- C#安装出现了问题帮帮忙
- mutex的问题,诚心请教
- 请教各位大虾, 怎样使用Type.GetType 获取另一项目下的某个类
- 编写一个C#程序,5秒后自动关闭电脑
- 用FileStream的seek方法怎么把文件指针移动到文件尾
- TreeView根据权限动态生成菜单的问题!
- winform DataGrid如何让它选种一个单元格,不是选种一行,也不是选种单元格的字符,而是选种整个单元格,不能编辑
- 一个关于session的问题??
- 有会用sql语句实现分页的朋友
- visual studio 2008 C#的編譯問題
- 如何在C#中调用SQL Server中的存储过程
- 大家来看看,一个关于base.BackgroundImage的问题,还没有见到有关这个问题的回答
getpicture()只提供了vb和vc++的语法.语法如下(VC++语法):
getPicture(nCamNum,lBufferSize,lpVarBuffer)
第三个参数说明:VARIANT lpVarBuffer 是一个COleSafeArray 类型.可是在c#中应该用什么类型呢?它没说.我用byte[]数组读不出来 .保存的文件长度有,但里面都是空的.我的代码如下:
n=axRye1.get_propPicSize(0);
byte[] b = new byte[n];
axRye1.GetPicture(0, n, b);
FileStream fs = new FileStream(sFileName, FileMode.OpenOrCreate);
fs.Write(b, 0, n);
fs.Close();
请问一下,vc++中的COleSafeArray 类型在c#中应该用什么代替?我应该怎么传递这个参数呢?