当前位置: 首页 > wzjs >正文

上海装修公司做网站关键词优化时间

上海装修公司做网站,关键词优化时间,我要外包网官网,哪些网络公司可以做机票预订网站最近碰到了try 和 __try的区别的问题,经过实测与验证,发现在vs2019下,确实存在try无法捕获特定异常的问题,比如下面的代码: //以空格作为分割符的符号个数 //内存复制功能 // test1.cpp : 定义控制台应用程序的入口点…

最近碰到了try 和 __try的区别的问题,经过实测与验证,发现在vs2019下,确实存在try无法捕获特定异常的问题,比如下面的代码:

//以空格作为分割符的符号个数
//内存复制功能
// test1.cpp : 定义控制台应用程序的入口点。
//
#include <Windows.h>
#include <tchar.h>
#include <winternl.h>
#include <Shlwapi.h>
#include <iostream>int Sub1(const char* v1);
CHAR* Sub2(const CHAR* Source, size_t size);const char* x = "11 11 1 ssssssssssss";int MemStandardTry()
{//仍然使用C++标准的try{}catch(…){}, 但在编译命令行中加入 /EHa 的参数。这样VC编译器不会把try catch模块给优化掉了。//注意 / EHa的大小写try{BYTE* pch;pch = (BYTE*)00001234;   //给予一个非法地址 *pch = 6; //对非法地址赋值,会造成Access Violation 异常 }catch (...){std::cout << "catched MemStandardTry" << std::endl;}return 0;
}int MemWinTry()
{__try{BYTE* pch;pch = (BYTE*)00001234;   //给予一个非法地址 *pch = 6; //对非法地址赋值,会造成Access Violation 异常 }__except (EXCEPTION_EXECUTE_HANDLER){std::cout << "catched" << std::endl;}return 0;
}int main()
{MemStandardTry();MemWinTry();
// 	printf("%d\r\n", Sub1(x));
// 	printf("%d\r\n", Sub1(NULL));
// 	char* szChar = (char*)"11 11 1 ssssssssssss";
// 	printf("%s\r\n", Sub2(szChar, 50));return 0;}int Sub1(const char* v1)
{int length = -1;char* Buffer = NULL;__try{Buffer = (char*)malloc(strlen(v1) + 1);strcpy(Buffer, v1);char* pszToken = strtok(Buffer, "s");//在第一次调用 strtok 时,函数跳过前导分隔符(连在一起算一个)并返回指向在 strToken的第一个标记的指针,以空字符终止标记。//通过一系列 strtok 的调用,多个标记将被从 strToken 的其余部分拆开。 每个 strtok调用通过插入 null 字符在该调用返回 token 之后修改strToken。for (; pszToken != NULL; pszToken = strtok(NULL, "s"))length++;length++;}__except (EXCEPTION_EXECUTE_HANDLER){}free(Buffer);return(length);
}CHAR* Sub2(const CHAR* Source, size_t size)
{CHAR* v1 = NULL;__try{v1 = (CHAR*)malloc(size);memcpy(v1, Source, size);}__except (EXCEPTION_EXECUTE_HANDLER){free(v1);v1 = NULL;}return(v1);
}

在不做任何设置的情况下 MemStandardTry()在debug模式下可以捕获异常 但是release无法捕获,而MemWinTry()可以正常捕获异常。

但是实际情况是,当我们按照注释,设置 ,则发现try也可以在release模式下捕获该异常。

//仍然使用C++标准的try{}catch(…){}, 但在编译命令行中加入 /EHa 的参数。这样VC编译器不会把try catch模块给优化掉了。
//注意 / EHa的大小写

具体设置位置如下:

经过设置后,可以测试正确捕获异常。

进一步的内容,可以参考C++ 异常捕获 try 和 __try的区别_异常捕获的方法与其区别-CSDN博客,谨此纪念。


文章转载自:

http://DGfw5cZr.bnxfj.cn
http://G1ddp1j2.bnxfj.cn
http://pdKPdkzq.bnxfj.cn
http://bWzgHBdL.bnxfj.cn
http://tN50ABAf.bnxfj.cn
http://XV5RD61n.bnxfj.cn
http://sG0U3qNa.bnxfj.cn
http://RrniFx0w.bnxfj.cn
http://92KtJ9Or.bnxfj.cn
http://nLjDKOr4.bnxfj.cn
http://jPVdamYR.bnxfj.cn
http://9bXHjrEv.bnxfj.cn
http://YsKMLx8A.bnxfj.cn
http://sKmYyAn1.bnxfj.cn
http://FfKI7InL.bnxfj.cn
http://MVWzAdGY.bnxfj.cn
http://AuIS74Kk.bnxfj.cn
http://mR7w6bzl.bnxfj.cn
http://ezRXspES.bnxfj.cn
http://iq9N0Fhj.bnxfj.cn
http://sQ71EWm6.bnxfj.cn
http://ETGbCeyY.bnxfj.cn
http://Tw1Rq1pL.bnxfj.cn
http://eIHhZAdO.bnxfj.cn
http://O60WYvEN.bnxfj.cn
http://Syrow3PS.bnxfj.cn
http://2r5ggDPs.bnxfj.cn
http://npDFufgV.bnxfj.cn
http://nvGvsYXO.bnxfj.cn
http://19dlQM2W.bnxfj.cn
http://www.dtcms.com/wzjs/673168.html

相关文章:

  • 做网站怎么接业务免费海外网络连接器
  • 优秀品牌网站案例分析兴文移动网站建设
  • 四川建设学网官方网站登录网站建设月总结
  • 如何选择扬中网站建设房地产店铺首页设计过程
  • 炫酷的html5网站做网站兴趣爱好
  • 重庆网站建设哪家公司那家好如何申请域名
  • 广西网站建设服务好网站可信认证必须做吗
  • 如何做一个内部网站app定制开发免费
  • 昌平网站设计收录网址教程
  • 青岛建设交易中心网站首页网络规划设计师通过率多少
  • 有哪些外国网站做精油的北京高端网站开发公司
  • No餐饮网站建设网站专题制作软件
  • 网站制作平台公司包头网络
  • 设计网站大全免费安徽省建设工程造价信息网官网
  • 江苏城乡与住房建设部网站wordpress
  • 如何做好网站推泾阳网站建设
  • 建设京东商城网站成都网站建设的费用
  • 天河网站建设企业长沙网页设计培训班在哪里
  • 网站备案 法人金融网站策划
  • 网站建设:化工简约网站内容布局
  • 学院路网站建设网站建设响应式是什么
  • 网站建设岗位工作范围用discuz好还是WordPress好
  • asia域名的网站广州手机网站
  • 做电商网站费用网站怎么做用户登录数据库
  • 做旅行网站网站设计总结与心得体会
  • 烟台房产网站建设淮安网站网站建设
  • 电子商务基础网站建设html做分模块的网站
  • 做网站首页图片网站设计宁波
  • 网站开发和平台开发门户网站注意事项
  • html5做静态网站关于论文网站开发参考文献