.NET_STAR

打造技术团队,愿与您共同开创事业!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::
//定义结构
Structure   cdSourceInfo
                Dim   SurceType   As   Integer        
                Dim   rsrvd   As   Integer   '/*   Reserved                  
                <VBFixedString(64),   System.Runtime.InteropServices.MarshalAs   (System.Runtime.InteropServices.UnmanagedType.ByValArray,   SizeConst:=64)>   Public   Name()   As   Char   '/*   Device   model   name  
                <VBFixedString(64),   System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray,   SizeConst:=64)>   Public   NameInOS()   As    
                Dim   PortType   As   Integer  
                Dim   u   As   cdPortDescripUnion  
End   Structure

//调用API
Declare   Function   CDOpenSource   Lib   "CDSDK.dll"   (ByRef   pSourceInfo   As   cdSourceInfo,   ByRef   phSource   As   Integer)   As   Integer
//调用函数
CDOpenSource(m_SourceInfo,   m_hSource)         参数值都传过来了

说明:
1、是佳能SDK开发包里语句(以前是VB6.0代码,通过visual   studio   2005自动升级过来到.NET的)
2、这些代码是从VB6.0转换过来的,编译能通过,在网上查了说可能是VB6到VB.NET一些数据类型不匹配

运行有时提示错误:
未处理的“System.Runtime.InteropServices.COMException”类型的异常出现在   RelCtrl.exe   中。
其他信息:   传递给系统调用的数据区域太小。   (异常来自   HRESULT:0x8007007A)

还有时提示这错误:
未处理的“System.AccessViolationException”类型的异常出现在   RelCtrl.exe   中。
其他信息:   尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

这问题憋了好几天了,一直解决不了,请问高手解决
posted on 2007-12-14 16:56  雷明  阅读(3056)  评论(1编辑  收藏  举报