ljcomm 2014年01月08日
如何捕获 strcpy_s 函数异常
学艺不精啊~~~~~~
环境为windows7/vs2010. release版本中,按照查阅的资料,使用了__try __except(1) , try catch(...), _set_se_translator(), /EHa , /EHs各种组合都捕获不到strcpy_s的异常,程序直接被windows枪毙。代码如下:
#include <iostream>
int main()
{
char * p=NULL;
try
{
strcpy_s(p,20,"1234567890");
std::cout<<p;
}
catch(...)
{
std::cout<<"捕获到异常";
}
return 0;
}

编译参数使用 /EHa和/EHs 都捕获不到异常
使用_set_se_translator()将结构化异常转换为C++异常后,也捕获不到异常。
如果换成strcpy()函数,很容易捕获到异常。
实在搞不明白strcpy_s()的异常机制。
...全文
135 点赞 收藏 15
写回复
15 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告