[問題] 請問如何取得程式(.exe)的位置

看板C_and_CPP作者 (Charlott.HonG)時間8年前 (2016/05/29 17:37), 8年前編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/1
程式碼:https://goo.gl/7SUXU5 我想要簡化gcc編譯OpenCV的參數不用每次都 g++ -I"C:\OpenCV\include" -L"C:\OpenCV\MinGw_64\lib" loadimg.cpp -lopencv_core2413 -lopencv_highgui2413 -o loadimg & loadimg.exe 打這麼長一串 自己寫了一個cv2.exe會自動補上缺的 也就是說我只要執行 cv2 loadimg.cpp -o loadimg 這樣就可以了 cv2.exe放在 C:\OpenCV\MinGw_64\bin 並加入環境變數 目前代碼我是直接寫死的直接指到 C:\OpenCV 我只要OpenCV的函式庫換位置就不能用了(cv2.exe一起放在裡面) 爬文之後使用 char org_dir[128]; getcwd(org_dir, 128); 可以取得執行檔位置 不過我發現他的位置應該是工作目錄 當我使用 cd %userprofile%/Desktop 然後再依靠環境變數執行 cv2 他回傳的位置就是在桌面 而不是在cv2.exe的位置 QQ這要怎麼辦 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.117.72.133 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1464514661.A.4AF.html

05/29 17:44, , 1F
你需要的是 Makefile www
05/29 17:44, 1F
看了一下不怎麼懂QQ 好像就是g++的簡化指令,具體不曉得怎麼做 比如說 g++ -cv2 souce.cpp -o source 簡化成這樣嗎

05/30 22:57, , 2F
argv[0]
05/30 22:57, 2F
試著把它印出來,取得的是(.exe)的名字,有什麼特別用法嗎? 試著把工作目錄切到同一個位置,確實會回傳當前工作位置

05/31 13:47, , 3F
05/31 13:47, 3F
太感謝你了,這是正解~~ 我一直編不出來找超久,結果是忘記windwos.h ((大哭 後來翻到的中文資料http://goo.gl/jxLRhc 範例: #include <iostream> #include <windows.h> using namespace std; int main(int argc, char const *argv[]){ char org_dir[MAX_PATH]; GetModuleFileName(NULL,org_dir,MAX_PATH); cout << org_dir << endl; return 0; } ※ 編輯: hunandy14 (114.35.139.127), 05/31/2016 23:36:01
文章代碼(AID): #1NIhXbIl (C_and_CPP)