【QC开发相关】解决无法创建TDConnection(OTAClient.dll中提供)对象的问题(错误0x800703e6)

在使用VS2008、VS2010开发C#程序时,使用OTAClient.dll做一些QC相关操作,会遇到创建TDConnection失败的情况,错误码是0x800703e6。具体错误信息为:
System.BadImageFormatException: Retrieving the COM class factory for component with CLSID {C5CBD7B2-490C-45F5-8C40-B8C3D108E6D7} failed due to the following error: 800703e6.

解决办法是在工程的Post Build Event里加入下面两行:
call "$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO $(TargetPath)


产生这个错误的原因是C#编译器会为程序默认开启数据执行保护(Data Execution Prevention),这造成加载OTAClient.dll失败,我们需要通过editbin.exe关闭这个特性。

相关问题解决方案:
http://www.sqaforums.com/showflat.php?Number=449845&page=0
http://blogs.msdn.com/b/ed_maurer/archive/2007/12/14/nxcompat-and-the-c-compiler.aspx

数据执行保护机制介绍:
http://technet.microsoft.com/zh-cn/library/cc738483(v=ws.10).aspx

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值