Visual Studio下的C/C++项目:找不到资源
C/C++ project under Visual Studio : Not found resources
当我在Visual Studio中为一个项目运行调试时,fopen函数可以正常工作。它试图打开项目中包含的文件,我在过滤器"Resources"中添加了该文件。但当我运行我的项目的.EXE文件时,我得到了空指针异常:0x000005c。
当我将该文件添加到与.EXE文件相同的目录中时,异常消失了。
这是我使用的指令:
fopen(&filename, "rb");
我知道建议使用fopen_s
,但无论如何都找不到文件。。。
显然,文件总是在当前目录中搜索。。。
那么,如何将文件包含在.EXE中,并使文件的路径相对于.EXE,以某种方式将其包含在.EEXE中,而不是添加到有.EXE的目录中
您不能将该文件包含在.exe中。您只需要确保该文件与.exe.位于同一目录中
如果你真的,真的只想使用一个文件,你可以:
-
将.exe和文本文件压缩在一起,并确保在自述文件中包含文本文件需要与.exe 位于同一位置
-
使用数组/结构/其他方式将文件内容存储在程序中,并引用它而不是使用文件(我认为你不在乎用户能够在程序实例之外编辑这些数据,因为你希望它与可执行文件捆绑在一起,所以在这种情况下文件是不必要的)
只有当您将文件放在.exe目录中时,程序才能工作,这是因为文件的路径在程序中定义为类似.file.txt
或file.txt
的路径。当该文件与.exe不在同一目录中时,程序会尝试找到它,但无法找到,这就是为什么会出现错误。它在调试时起作用,因为文本文件的副本与debug.exe.位于同一位置
编辑:我也会忽略关于fopen_s
和其他在命令末尾附加_s
的变体的警告——这些都是特定于窗口的、非标准的,在大多数情况下毫无意义。如果你知道这个程序只会在windows环境中使用,而你没有为学校做一些需要编写标准代码的事情,为了安全起见,我建议你使用_s
变体,但这会降低代码的可移植性。
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- LD:尝试编译项目时找不到架构x86_64符号
- Visual Studio跨平台生成文件项目,找不到命令
- 在OSx:ld上使用CMake构建C++项目:找不到体系结构x86_64的符号
- Qt Creator项目打破:"找不到建筑x86_64符号"
- 项目 A 依赖共享库 B,B 依赖 C,A 不依赖 C。当我使用 B 的 API 时,警告 B 找不到 C
- VS 2017 构建工具失败,出现错误 MSB4019:找不到导入的项目"D:Microsoft.Cpp.Default.props"
- 我的C++项目找不到.exe
- 在Visual Studio 2017中使用Qt库的CMake项目:运行exe时找不到Qt dll
- LVM_GETNEXTITEM在列表视图中找不到项目
- 在项目中移动了文件,现在我找不到命名空间
- 为什么我的项目在命名空间 std 中找不到"function"?
- NetBeans - 两个项目 - 一个找不到要包含的文件 (C++)
- 找不到Visual Studio 2013的WRL项目模板
- 从iOS示例项目导入cpp文件时,找不到架构armv7的符号
- 如何解析 /usr/lib64/libstdc++.so.6:在我的 CGAL cmake 项目中找不到版本 'GLIBCXX_3.4.15'?
- 外部 VS2013 生成错误"错误 MSB4019:找不到导入的项目<path>"
- 在Qt CMake项目中找不到QCursor
- 在开源项目中找不到功能Get_AacEncoder,即使在系统中也是如此
- Visual Studio下的C/C++项目:找不到资源