首页 > 编程语言 >C++可执行文件绝对路径获取与屏蔽VS安全检查

C++可执行文件绝对路径获取与屏蔽VS安全检查

时间:2023-01-06 14:00:23浏览次数:40  
标签:__ 安全检查 C++ 绝对路径 pgmptr VS


:前言

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

:_pgmptr

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

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

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

返回值为char**,也就是普通的字符串数组。

:VS安全检查

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

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

#define _CRT_SECURE_NO_WARNINGS

别急着拷,先往下看...
还是不行
定义了安全宏之后,还是报了同样的错...不知道你们会不会,反正我是这样
那么,要绕过安全检查,就得另辟蹊径了。
项目属性
在解决方案资源管理器中右键项目,单击属性,进入下方页面
在这里插入图片描述
找到C/C++ -> SDL检查 -> 否(/sdl-)-> 确定
这样,安全检查就被绕过了。


总结

1.程序绝对路径获取:_pgmptr
2.VS安全检查:项目属性 -> C/C++ -> SDL检查 -> 否(/sdl-)



  • 技术讨论QQ:3461670586

Yuito,一个爱学习爱探讨,爱编程爱生活的人

标签:__,安全检查,C++,绝对路径,pgmptr,VS
From: https://www.cnblogs.com/yuito/p/17030233.html

相关文章

  • C++ 文件读入速度测试
    在信息学竞赛中,输入数据规模可能会很大,这时候就需要注意文件读取的效率。本文在Linux环境下测试了C++几种常见读入方式的效率。1.系统环境ArchLinuxx86_64默认L......
  • C++中对句柄Handle的理解
    在C++的初学者中,很容易把句柄理解成指针,但其实,句柄并不是指针. 那么句柄是什么,一句话,句柄是资源(或项目)的唯一标识。我们需要搞清楚的是,句柄Handle到底是怎么来标识......
  • 【LeetCode2180】[Go/C++/C#/Ruby/Swift/Kotlin/Rust/PHP/TS/Racket/Dart/Java/Elixir
    [toc]题解地址https://leetcode.cn/problems/count-integers-with-even-digit-sum/solutions/2047123/by-yhm138_-w8co/lc2180代码//点击指定元素document.querySel......
  • macOS darwin/amd64 vs Darwin/x86_64 All In One
    macOSdarwin/amd64vsDarwin/x86_64AllInOneuname#uname$unameDarwin$uname-aDarwinxgqfrms-mm.local22.2.0DarwinKernelVersion22.2.0:FriNov11......
  • 【C++高级编程】(四)设计可重用的代码
      4.1重用哲学  4.2如何设计可重用的代码  4.2.1使用抽象    4.2.2构建理想的重用代码   4.2.3 设计有用的接口    4.2.4协......
  • C++教师教学创新大赛信息管理系统
    C++教师教学创新大赛信息管理系统二、教师教学创新大赛信息管理系统基本要求1、本系统包括建立评审专家帐号、选手报名、选手比赛(评审专家评分)、结果公示与统计等环节。......
  • 【VS Code】c++环境配置 && .vscode文件 && Code Runner的exe文件指定生成位置
    因为一些奇奇怪怪的问题重装了系统,所以重新配置了vscode,上次配置vscode时由于没有用过,所以环境配置一头雾水,甚至还有些历史遗留问题,一直都是在凑活着用,这次刚好重新开始。......
  • VSCode使用小技巧
    VSCode写C/C++项目我们需要先下载minGW,并需要在VSCode里面下载相应的插件,如下:然后,将vscode保存c++项目的文件夹用vscode打开,就会出现这样的形式:一个标准的、在V......
  • C/C++之大端小端
    参考链接:https://blog.csdn.net/qq78442761/article/details/61210305 注释:  //此处的右移运算是对0x12345678进行操作 且4个Byte中取得是最低的一个  ......
  • C++标准库探索std::chrono
    ​​如何获取C++标准库的源码-走看看​​std::chronochrono是一个timelibrary,源于​​boost​​,现在已经是C++标准。要使用chrono库,需要 ​​​#include<chrono>​......