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

猜你喜欢

转载自blog.csdn.net/qq_34662299/article/details/83583728
今日推荐