相关疑难解决方法(0)

如何在C中找到可执行文件的位置?

在C/C++中是否有办法找到当前执行程序的位置(完整路径)?

(问题argv[0]在于它没有给出完整的路径.)

c c++ unix linux path

140
推荐指数
6
解决办法
7万
查看次数

如何获得当前目录?

我一直在C#和Delphi中这样做,但C++是邪恶的.目的是在当前目录中创建一个文件(可执行文件正在运行).

我的代码:

LPTSTR NPath = NULL;
DWORD a = GetCurrentDirectory(MAX_PATH,NPath);
HANDLE hNewFile = CreateFile(NPath,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
Run Code Online (Sandbox Code Playgroud)

我在GetCurrentDirectory()中遇到异常.

请告诉我为什么我得到一个例外,如何在C++中更容易?

c++ windows

53
推荐指数
8
解决办法
25万
查看次数

如何在c ++中将工作目录设置为"解决方案目录"

我想将当前目录设置为解决方案diretory /配置名称.我怎么做?我可以用某种方式使用全局变量吗?

编辑:我正在尝试读取文件,当前目录在代码中间发生变化.我想改回来.

c++ visual-studio

15
推荐指数
4
解决办法
6万
查看次数

我如何找到当前目录?

我正在尝试读取我之前成功读取的文件.我正在通过一个库阅读它,我将它原样发送到库(即"myfile.txt").我知道该文件是从working/current目录中读取的.

我怀疑当前/工作目录已经以某种方式发生了变化.我如何检查当前/工作目录是什么?

c++ working-directory visual-c++

14
推荐指数
3
解决办法
5万
查看次数

如何计算GetModuleFileName的完整缓冲区大小?

GetModuleFileName()需要一个缓冲器和缓冲器作为输入的大小; 但是它的返回值只能告诉我们复制了多少个字符,以及大小是否足够(ERROR_INSUFFICIENT_BUFFER).

如何确定保存整个文件名的实际所需缓冲区大小GetModuleFileName()

大多数人使用,MAX_PATH但我记得路径可以超过(默认定义为260)...

(使用零作为缓冲区大小的技巧对这个API不起作用 - 我之前已经尝试过)

windows winapi getmodulefilename

12
推荐指数
2
解决办法
6068
查看次数

如何在 C++ 中获取当前源路径 - Linux

我希望能够获得当前的源文件路径。

string txt_file = CURRENT_FILE_PATH +"../../txt_files/first.txt";
inFile.open(txt_file .c_str());
Run Code Online (Sandbox Code Playgroud)

有没有办法获得 CURRENT_FILE_PATH ?我不是说可执行路径。我的意思是运行代码的源文件的当前位置。

非常感谢,乔拉。

c++

10
推荐指数
2
解决办法
5673
查看次数

C++ fopen 相对路径

我通读了一些关于相对路径的主题,但我还是弄错了。我希望某人可以帮助我:)。我使用的是 Visual Studio 2013,Windows 7

我得到以下目录:

这是我的 .exe 文件 D:\uni\c++\ex5\msvc2013\ex5\Debug

这是我要读取的文件 D:\uni\c++\ex5\res\thehead.raw

打开文件的代码:

FILE* f;
f = fopen("..\\..\\..\\res\\thehead.raw", "rb");
if (f == NULL)
printf("FAIL!!");
Run Code Online (Sandbox Code Playgroud)

因为我需要使用相对路径,所以我想通如下:..\ 到达父目录。

所以“..\..\..\”应该让我进入文件夹“D:\uni\c++\ex5\”。

\res 应该打开 res 文件夹。

不用说它失败了,我不知道为什么。任何帮助,将不胜感激。

c++ windows

6
推荐指数
1
解决办法
3万
查看次数

SFML“未能创建字体”问题

我在 Visual Studio 2015 中使用 SFML 制作需要我打印文本的游戏。我尝试加载字体并不断收到错误消息,提示“无法创建字体”。我尝试加载几种不同的字体,但它们都不起作用,它们位于正确的目录中,即我的项目所在的文件夹。

这就是它的全部内容,它不起作用:

 sf::Font font;
    if (!font.loadFromFile("arial.ttf"))
        return EXIT_FAILURE;
Run Code Online (Sandbox Code Playgroud)

arial 的 ttf 文件与项目本身位于同一文件夹中,这似乎可以为我在网上找到的其他遇到相同问题的人解决问题。知道为什么字体仍然无法加载吗?

c++ fonts sfml

5
推荐指数
1
解决办法
1万
查看次数

在 Linux/MacOS 上双击执行 C++ 可执行文件

我编写了一个 C++ 软件,该软件需要从其所在的文件夹中读取文件,然后在同一文件夹中写入其他文件。

目前,我通过 shell 导航到复制了可执行文件的文件夹,然后使用./executable_name.

我想通过双击来执行它。如果我这样做,软件告诉我它找不到输入文件,那么就好像它没有在正确的文件夹中执行。

我认为有两种方法:

  1. 继续复制工作文件夹中的可执行文件并告诉它在此文件夹中查找文件。
  2. 创建一个 bash 脚本来调用给定文件夹中的可执行文件(例如应用程序),然后将此脚本复制到工作文件夹中。然后告诉脚本执行该软件,就像它在工作文件夹中一样。
  3. 你可能有更好的想法

无论如何,我不知道该怎么做。

有人可以帮帮我吗?

c++ linux directory macos executable

5
推荐指数
1
解决办法
2749
查看次数

如何获得程序路径

可能重复:
如何在C中查找可执行文件的位置

我正在使用GTK +在C++中编写一个多平台应用程序,我遇到了问题.我必须得到程序路径.例如,当节目在/home/user/program(或C:\Users\user\program.exe)时,我有/home/user/(或C:\Users\user\).

可以以及如何做到这一点?

c++ gtk

4
推荐指数
2
解决办法
3万
查看次数