c/c++程式設計經驗總結及VS2013使用注意事項
阿新 • • 發佈:2019-01-14
1、fatal error LNK1112: 模組計算機型別“X86”與目標計算機型別“x64”衝突
可能的解決方案:專案名右鍵,點選清理。
2、windows下檢視exe和dll依賴及版本位數
解決方案:在vs安裝目錄下,我的路徑為為D:\vs2013\Common7\Tools\Shortcuts下開啟 VS2013 x86 本機工具命令提示或VS2013 x64 本機工具命令提示
檢視依賴項,在命令列下輸入
dumpbin /dependents dll或exe檔案絕對路徑
檢視版本位數,在命令列下輸入
dumpbin /headers dll或exe檔案絕對路徑
3、error C2146: 語法錯誤: 缺少“;”(在識別符號“Buffer”的前面) C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h
error C4430: 缺少型別說明符 - 假定為 int。注意: C++ 不支援預設 int C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h
解決方案:在StdAfx.h檔案中前面新增程式碼
#ifndef POINTER_64 #if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_VER >= 1100) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) #define POINTER_64 __ptr64 typedef unsigned __int64 POINTER_64_INT; #if defined(_WIN64) #define POINTER_32 __ptr32 #else #define POINTER_32 #endif #else #if defined(_MAC) && defined(_MAC_INT_64) #define POINTER_64 __ptr64 typedef unsigned __int64 POINTER_64_INT; #else #if (_MSC_VER >= 1300) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) #define POINTER_64 __ptr64 #else #define POINTER_64 #endif typedef unsigned long POINTER_64_INT; #endif #define POINTER_32 #endif #endif
4、error C4996: ‘fopen’: This function or variable may be unsafe. Consider using fopen_s instead.
及類似報錯 This function or variable may be unsafe
解決方案:
工程屬性頁->配置屬性->c/c++->前處理器->前處理器定義->編輯
新增程式碼
_CRT_SECURE_NO_WARNINGS
5、判斷檔案是否存在
if(access(filename, 0) ==0) { printf("file exist"); } else { printf("no file"); }