C++可執(zhí)行文件絕對(duì)路徑值與VS安全檢查詳解
前言
前幾天寫新項(xiàng)目需要用到程序所在絕對(duì)路徑的時(shí)候,發(fā)現(xiàn)網(wǎng)上居然一點(diǎn)相關(guān)分享都沒有。
:_pgmptr
翻箱倒柜找出了幾本教程,發(fā)現(xiàn)了一個(gè)叫_pgmptr的東西。

進(jìn)去看了一下,在stdlib.h里拓展到了函數(shù)__p__pgmptr(),函數(shù)原型:
_CRT_INSECURE_DEPRECATE_GLOBALS(_get_pgmptr ) _ACRTIMP char** __cdecl __p__pgmptr (void);返回值為char**,也就是普通的字符串?dāng)?shù)組。
:VS安全檢查
趕緊放到項(xiàng)目里試一試,結(jié)果卻報(bào)錯(cuò)了。

定睛一看,原來是Visual Studio的安全檢查不讓這個(gè)“可能”越界的函數(shù)過編譯。一般來說,改用它提示的安全函數(shù)就可以過,可這次居然沒有安全函數(shù)...
于是乎,要么找別的函數(shù), 要么繞過安全檢查。我選擇了后者,根據(jù)錯(cuò)誤提示定義安全宏:
#define _CRT_SECURE_NO_WARNINGS
別急著拷,先往下看...

定義了安全宏之后,還是報(bào)了同樣的錯(cuò)...不知道你們會(huì)不會(huì),反正我是這樣
那么,要繞過安全檢查,就得另辟蹊徑了。

在解決方案資源管理器中右鍵項(xiàng)目,單擊屬性,進(jìn)入下方頁面

找到C/C++ -> SDL檢查 -> 否(/sdl-)-> 確定
這樣,安全檢查就被繞過了。
總結(jié)
1.程序絕對(duì)路徑獲取:_pgmptr
2.VS安全檢查:項(xiàng)目屬性 -> C/C++ -> SDL檢查 -> 否(/sdl-)
到此這篇關(guān)于C++可執(zhí)行文件絕對(duì)路徑值與VS安全檢查的文章就介紹到這了,更多相關(guān)C++可執(zhí)行文件絕對(duì)路徑值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言?超詳細(xì)梳理總結(jié)動(dòng)態(tài)內(nèi)存管理
動(dòng)態(tài)內(nèi)存是相對(duì)靜態(tài)內(nèi)存而言的。所謂動(dòng)態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動(dòng)態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存,本文帶你深入探究C語言中動(dòng)態(tài)內(nèi)存的管理2022-03-03
Linux系統(tǒng)中C語言編程創(chuàng)建函數(shù)fork()執(zhí)行解析
最近在看進(jìn)程間的通信,看到了fork()函數(shù),雖然以前用過,這次經(jīng)過思考加深了理解?,F(xiàn)總結(jié)如下2013-04-04
C++順序表實(shí)現(xiàn)圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++順序表實(shí)現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10

