網站首頁 編程語言 正文
前言
前幾天寫新項目需要用到程序所在絕對路徑的時候,發現網上居然一點相關分享都沒有。
:_pgmptr
翻箱倒柜找出了幾本教程,發現了一個叫_pgmptr
的東西。
進去看了一下,在stdlib.h
里拓展到了函數__p__pgmptr()
,函數原型:
復制代碼 代碼如下:
_CRT_INSECURE_DEPRECATE_GLOBALS(_get_pgmptr ) _ACRTIMP char** __cdecl __p__pgmptr (void);
返回值為char**
,也就是普通的字符串數組。
:VS安全檢查
趕緊放到項目里試一試,結果卻報錯了。
定睛一看,原來是Visual Studio的安全檢查不讓這個“可能”越界的函數過編譯。一般來說,改用它提示的安全函數就可以過,可這次居然沒有安全函數...
于是乎,要么找別的函數, 要么繞過安全檢查。我選擇了后者,根據錯誤提示定義安全宏:
#define _CRT_SECURE_NO_WARNINGS
別急著拷,先往下看...
定義了安全宏之后,還是報了同樣的錯...不知道你們會不會,反正我是這樣
那么,要繞過安全檢查,就得另辟蹊徑了。
在解決方案資源管理器中右鍵項目,單擊屬性,進入下方頁面
找到C/C++ -> SDL檢查 -> 否(/sdl-)-> 確定
這樣,安全檢查就被繞過了。
總結
1.程序絕對路徑獲取:_pgmptr
2.VS安全檢查:項目屬性 -> C/C++ -> SDL檢查 -> 否(/sdl-)
原文鏈接:https://www.cnblogs.com/yuito/p/17030233.html
相關推薦
- 2022-07-29 Ceph分布式存儲集群Pool資源池簡介及使用小結_其它綜合
- 2022-11-17 Android文本與視圖基本操作梳理介紹_Android
- 2021-12-13 C++繼承類成員訪問權限修飾符詳解_C 語言
- 2022-06-09 ASP.NET?Core記錄日志_實用技巧
- 2022-06-21 C#實現XML文件與DataTable、Dataset互轉_C#教程
- 2022-07-09 flutter封裝單選點擊菜單工具欄組件_Android
- 2023-01-15 PyQt5+QtChart實現繪制極坐標圖_python
- 2022-03-13 C語言實現求解最小公倍數的算法示例_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支