解决:0x80070057 ValueClassMarshaler.ConvertToNative
用了整整
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) 如下图所示: 解决方法:项目属性-应用程序-程序集信息-使程序集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比较项目设置时才发现解决方法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |