加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ArgumentException:参数错误,HRESULT:0x80070057 ValueClassMarshaler.ConvertToNative

(2015-02-01 17:28:07)
标签:

编程问题

it

vb6

vs2010

分类: FAQ

用了整整7小时解决掉下面这个问题:

 问题:

System.ArgumentException:参数错误。(异常来自HRESULT:0x80070057(E_INVALIDARG))

System.StubHelpers.ValueClassMarshaler.ConvertToNative(IntPtr dst, IntPtr src, IntPtr pMT, CleanupWorkList& pCleanupWorkList)

   xcsrvb7._CardFile.WriteCard(WFCAS_Card_t& card)

如下图所示:

 http://s14/mw690/001UiUQegy6PDFLFbaJ8d&690ValueClassMarshaler.ConvertToNative" TITLE="ArgumentException:参数错误,HRESULT:0x80070057 ValueClassMarshaler.ConvertToNative" />


解决方法:项目属性-应用程序-程序集信息-使程序集COM可见(打勾)

http://s9/mw690/001UiUQegy6PDFL3Hteb8&690ValueClassMarshaler.ConvertToNative" TITLE="ArgumentException:参数错误,HRESULT:0x80070057 ValueClassMarshaler.ConvertToNative" />


总结:

使程序集COM可见:没有勾选时就会出现如上错误。

xcsrvb7.dll  XCSRB6.DLL(VB6写的DLL)TLBIMP生成的。

wfIfSmc4boss.dll 直接调用xcsrvb7.dll

窗体应用程序wfIfSmc4boss.dll_demovb2010直接调用wfIfSmc4boss.dll,不会直接调用xcsrvb7.dll

所有直接使用xcsrvb7.dll的项目都必须作这样的设置(使程序集COM可见:打勾),间接使用的不必打勾,打勾也没问题,不过为防止其它DLL出现类似问题,建议就都打勾。

 

 http://s11/mw690/001UiUQegy6PDFLjruy4a&690ValueClassMarshaler.ConvertToNative" TITLE="ArgumentException:参数错误,HRESULT:0x80070057 ValueClassMarshaler.ConvertToNative" />


环境:VB.NET2010SP1 @Windows server2012r2


注:

在和另外使用xcsrvb7.dll好几年的项目SMS比较项目设置时才发现解决方法。

 


 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有