解决: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)

如下图所示:

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


解决方法:

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

ArgumentException:参数错误,HRESULT:0x80070057 <wbr>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出现类似问题,建议就都打勾。

 

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


环境:

VB.NET2010SP1 @Windows  server2012r2


注:

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


转载于:https://my.oschina.net/SamXIAO/blog/374176

如果在安装.NET Framework 3.5时遇到错误,可能是由于以下原因之一: 1. 缺少.NET Framework 2.0或3.0: 在安装.NET Framework 3.5之前,需要安装.NET Framework 2.0或3.0。请确保它们已经安装并启用。 2. 网络连接问题: 如果是通过互联网连接下载安装程序,则可能是网络连接问题。请确保您的网络连接正常并且可以访问所需的资源。 3. 安全设置问题:如果您的计算机受到安全策略的限制,则可能无法安装.NET Framework 3.5。请联系您的系统管理员以了解更多信息。 对于Windows Server 2012 R2,您可以尝试以下步骤来解决.NET Framework 3.5安装问题: 1. 打开服务器管理器并选择"添加角色和功能"。 2. 选择“角色和功能安装向导”中的“角色”页面。 3. 选择“Web服务器(IIS)”,然后单击“下一步”。 4. 单击“添加功能”以添加所需的功能。 5. 在“功能”页面上,选择“.NET Framework 3.5 功能”,然后单击“下一步”。 6. 单击“安装”以开始安装。 如果仍然无法解决问题,您可以尝试从本地安装.NET Framework 3.5。您可以按照以下步骤操作: 1. 将Windows Server 2012 R2安装介质插入到服务器上。 2. 打开命令提示符并输入以下命令: dism /online /enable-feature /featurename:NetFX3 /All /Source:drive_letter:\sources\sxs /LimitAccess (注意:将“drive_letter”替换为安装介质的驱动器字母) 3. 按回车键以开始安装。 希望这些步骤可以帮助您解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值