1. 程式人生 > >c/c++程式設計經驗總結及VS2013使用注意事項

c/c++程式設計經驗總結及VS2013使用注意事項

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");
}