织梦CMS - 轻松建站从此开始!

罗索

当前位置: 主页>杂项技术>VC(MFC)>

0xC015000F: 正被停用的激活上下文不是最近激活的

落鹤生 发布于 2015-06-23 23:27 点击:次 
这个问题出现应该首先查自己的代码.(对于我自己的操作指针没有检查是否为空.导致该问题出现)一般是出现了错误.按照上述做法虽然 不会提示该异常,但是有错误的程序总是会在其他时间出错.
TAG: MFC  

问题:
在Win7下编译的程序在XP上无法运行,或者在xp下编译的程序在vista、win7下无法运行。
错误异常
0xC015000F: 正被停用的激活上下文不是最近激活的。
0xC015000F: The activation context being deactivated is not the most recently activated one.
解决方法:

  1. CWinAppEx::InitInstance(); 
  2. afxAmbientActCtx = FALSE; 

或:

  1. CWinApp::InitInstance(); 
  2. afxAmbientActCtx = FALSE; 

按理说禁用Activation Context不是标准的作法,但这样做确实能解决问题。没有更好的办法之前,这样用一下也无妨。

文章来源: http://www.cppblog.com/mythma/archive/2011/03/20/sxs-activation-context.html

从本人程序中出现这个错误的原因是: 一个未分配内存的对象,调用其成员函数, 内存操作错误导致. (一步步跟踪发现) 异常出现的位置和操作内存的代码相隔十万八千里.所以建议从按照程序的路径跟踪下去.

结论: 这个问题出现应该首先查自己的代码.(对于我自己的操作指针没有检查是否为空.导致该问题出现)一般是出现了错误.按照上述做法虽然 不会提示该异常,但是有错误的程序总是会在其他时间出错.

再:转一个 内存操作导致的该异常: 来源:http://www.cnblogs.com/gaowg/archive/2012/12/11/2812873.html

内存操作错误的导致的 “0xC015000F 正在被停用的激活上下文不是最近激活的”

  1. typedef struct CSS_REG_INFO 
  2.     INT32 nSRVID;                    //固定服务ID, 存储服务ID 
  3.     enumDISKROLETYPE nRole;            //角色 
  4.     TCHAR szIP[HMC_CHAR_128];        //服务IP 
  5.     TCHAR szPermit_IP[HMC_CHAR_128];//允许登录的IP 
  6.     INT32 nPermit_Port;            //允许登录的端口 
  7. }*LPCSS_REG_INFO; 
  8.  
  9. struct STORAGESVR 
  10.     CSS_REG_INFO cssInfo; 
  11.     std::list<DISK_REG_INFO> diskInfo; 
  12. }; 
  13.  
  14. typedef std::map<int, STORAGESVR> STORAGESVR_MAP; 
  15. STORAGESVR_MAP m_mapCSSInfo; 
  16.  
  17. void CStoragePolicyMgt::_AddStorageSvr(LPCSS_REG_INFO pCSSRegInfo) 
  18.     if (pCSSRegInfo == NULL) 
  19.     { 
  20.         return;  
  21.     } 
  22.     STORAGESVR storageSvr; 
  23.     ZeroMemory(&storageSvr, sizeof(STORAGESVR )); 
  24.     memcpy(&storageSvr.cssInfo, pCSSRegInfo, sizeof(CSS_REG_INFO)); 
  25.     m_mapCSSInfo[pCSSRegInfo->nSRVID]=storageSvr; 
  26.  
  27.     HMCDAL_GetRegDiskList(fnGetRegDiskCallback, this, pCSSRegInfo->nSRVID); 

ZeroMemory(&storageSvr, sizeof(STORAGESVR ));
这行导致了内存越界, 在 m_mapCSSInfo[pCSSRegInfo->nSRVID]=storageSvr 操作时引起了一个无法预料的异常 "正在被停用的激活上下文不是最近激活的".
结构体加入了list对象后,自动转换为C++类, 内存布局已经不是简单的结构体内存模式, 已经不能用简单的memset等内存操作函数改变内存.

(w839687571)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201506/17341.html]
本文出处:CSDN博客 作者:w839687571 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容