问题:
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)
如下图所示:
解决方法:
项目属性-应用程序-程序集信息-使程序集COM可见(打勾)
总结:
使程序集COM可见:没有勾选时就会出现如上错误。
xcsrvb7.dll 是XCSRB6.DLL(VB6写的DLL)经TLBIMP生成的。
wfIfSmc4boss.dll 直接调用xcsrvb7.dll
窗体应用程序wfIfSmc4boss.dll_demovb2010直接调用wfIfSmc4boss.dll,不会直接调用xcsrvb7.dll。
所有直接使用xcsrvb7.dll的项目都必须作这样的设置(使程序集COM可见:打勾),间接使用的不必打勾,打勾也没问题,不过为防止其它DLL出现类似问题,建议就都打勾。
环境:
VB.NET2010SP1 @Windows server2012r2
注:
在和另外使用xcsrvb7.dll好几年的项目SMS比较项目设置时才发现解决方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。