网站/小程序/APP个性化定制开发,二开,改版等服务,加扣:8582-36016

    这篇文章主要给大家介绍了关于C++可执行文件绝对路径值与VS安全检查的相关资料,需要的朋友可以参考下


    前言

    前几天写新项目需要用到程序所在绝对路径的时候,发现网上居然一点相关分享都没有。

    :_pgmptr

    翻箱倒柜找出了几本教程,发现了一个叫_pgmptr的东西。
    _pgmptr

    进去看了一下,在stdlib.h里拓展到了函数__p__pgmptr(),函数原型:

    _CRT_INSECURE_DEPRECATE_GLOBALS(_get_pgmptr ) _ACRTIMP char** __cdecl __p__pgmptr (void);


    :VS安全检查返回值为char**,也就是普通的字符串数组。

    赶紧放到项目里试一试,结果却报错了。
    VS安全检查

    定睛一看,原来是Visual Studio的安全检查不让这个“可能”越界的函数过编译。一般来说,改用它提示的安全函数就可以过,可这次居然没有安全函数...
    于是乎,要么找别的函数, 要么绕过安全检查。我选择了后者,根据错误提示定义安全宏:

    #define _CRT_SECURE_NO_WARNINGS


    别急着拷,先往下看...
    还是不行

    定义了安全宏之后,还是报了同样的错...不知道你们会不会,反正我是这样
    那么,要绕过安全检查,就得另辟蹊径了。


    项目属性

    在解决方案资源管理器中右键项目,单击属性,进入下方页面


    在这里插入图片描述

    找到C/C++ -> SDL检查 -> 否(/sdl-)-> 确定
    这样,安全检查就被绕过了。

    评论 0

    暂无评论
    0
    0
    0
    立即
    投稿
    发表
    评论
    返回
    顶部