當辛辛苦苦寫好一段帶有圖形界面的代碼而exe無法進行圖形輸出,顯然是一件十分苦惱的事情,下面就提供一種此類問題的解決方案,並且簡單介紹一種最簡單的打包方法以及vs的一種打包
問題描述
當代碼在vs上運行時可以得到正常的圖形輸出

然而而通過exe文件打開卻是一片漆黑

問題分析
既然vs上可以正常運行,說明代碼是沒有問題的,想要解決問題顯然下一步需要從exe文件入手
我們對未進行輸出的圖形界面框進行預期操作(例如:程序中有獲取鼠標消息的功能時對黑框進行點擊)通過控制台可以發現程序可以接收指令並且正常運行,只是圖形未輸出



顯然問題就出在了exe對輸出圖片的讀取上
解決方案
將圖片移動至exe文件所在文件夾


可以看到,當圖片拖至exe文件所在文件夾時exe文件便可進行正常輸出
但需要注意:此時對應的代碼是
loadimage(&img[10], L"10.jpg", SIZE, SIZE);
引號(“”)中為圖片名稱(包括格式),代表直接從exe文件所在文件夾讀取圖片(10.jpg)
而當圖片過多時又改怎么辦?
我們可以更改文件的讀取路徑,代碼如下
loadimage(&img[10], L"jpg//10.jpg", SIZE, SIZE)
代表從exe所在文件夾中的jpg文件夾中讀取圖片(10.jpg)(更深層以此類推)


這樣通過exe文件打開程序的圖片輸出問題就得到解決了,這同時也為最簡單的打包方法做好了鋪墊
最簡單的打包方法
這種方法真的是打包(這是一種小學生都會的打包方法,雖然不是很高端,但是很簡單),原理就是將所有程序運行文件(例如圖片、庫函數等)全部放至exe文件夾內,然后就可以拷貝給其他電腦使用了,如果想要遠程發送,可以再壓縮成壓縮包發送,對方解壓即可使用

VS2017中自帶的打包方法
VS2017中自帶的打包便是通過在源方案上創建Setup Project項目從而生成一個安裝包

具體操作方法百度有很多,不再贅述,下面就簡單介紹一下百度比較難以搜索到的打包時各個文件夾的含義(以Windows10為例)

在利用Setup Project進行打包時對這三個文件夾的操作是難以避免的,但是百度上大多都是交給你如何操作,你真正知道這三個文件夾代表什么意思嗎?
1、Application Folder
這個便是程序的內容,是你將程序安裝后得到的一系列看起來非常復雜高端的東西。
2、User's Desktop
顧名思義:用戶的桌面
這個的功能是在程序安裝之后在桌面上創建的內容
3、User's Programs Menu
同樣顧名思義:用戶的程序菜單
這個的功能是在程序安裝之后在程序菜單上創建的內容(即點開Windows小圖標后顯示的菜單)
原文轉載:https://blog.csdn.net/qq_43636360/article/details/84946196
