从以前的问题修改
注意:
将BSTRvariables传递给COM方法, HRESULT返回值为8000FFFF
以前与接口指针调用成功 :HRESULT为0
在Visual Studio中执行成功 ,外部失败 – 释放和debugging
插图:
BSTR raw_sim_Open = SysAllocString (L"c:\example.S8"); hresult = pis8->raw_Open (raw_sim_Open); //0x8000FFFF returned
编辑 – WinDbg:
First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=003a5be8 ebx=00009000 ecx=003a0208 edx=77606e00 esi=0012ec90 edi=00191b14 eip=003a0283 esp=0012ec34 ebp=0012ecb4 iopl=0 nv up ei ng nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010296 Missing image name,possible paged-out or corrupt data. Missing image name,possible paged-out or corrupt data. <Unloaded_PI32.dll>+0x3a0282: 003a0283 0080023a0088 add byte ptr [eax-77FFC5FEh],al ds:0023:883a95ea=??
定义_HAS_TradITIONAL_STL来启用STLfunction是否安全?
Windows服务器RDP会话远程控制
C ++:函数variables声明,它如何在内部工作?
使用Visual Studio 2008编译的C ++ dll可以用于Visual Studio 2005吗?
有没有办法,或者什么是“接受”的方式来获得当前stream程下的所有窗口?
在Visual Studio 2008中是否有stoll()/ stroll()(string long long)替代方法?
在Visual Studio中刷新自动完成(IntelliSense)数据库
停止同步Windows 2008 R2时钟
将多个parameter passing给CreateThread
调试版本和发布版本之间最显着的区别之一是调试库将内存初始化为零,而发行版本则不会。 因此,如果某个东西在调试版本中工作,但在发布版本中失败,则可能的原因是一个或多个未初始化的变量。
像danbystrom提到的,差异可能是在初始化。 但是这也会间接影响执行。 例如,如果该方法不调用SysstringLen来确定字符串的长度,而是试图将其用作以空字符结尾的字符串呢? 这不太可能是问题的原因,但值得检查。
如果这种情况下,将有所帮助。 使用SysAllocStringLen()来获得具有尾随空字符的BSTR。
E_UNEXPECTED的返回并不直接暗示任何东西。
更多的COM运行时错误更具体(如DCOM连接丢失),所以可能是COM组件本身返回E_UNEXPECTED 。
您需要查看或调试COM组件本身的实现。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。