c++ - 在哪里存储 .properties 文件以在 C++ dll 中使用

标签 c++ windows dll location properties-file

我创建了一个 .properties 文件,其中包含一些简单的 key = value 对。 我从示例 C++ 控制台应用程序中使用导入的 Java 类对其进行了尝试,我能够访问它,没问题。

现在,我正尝试以相同的方式从 C++ dll 中使用它,它正在被另一个(非托管)C++ 项目调用。

由于某种原因,该文件未被访问。

可能我的文件位置不对。我应该将它存储在哪里?

还有什么问题?

TIA

最佳答案

正如您提到的“DLL”,我猜您使用的是 MS Windows。从 DLL 中查找文件,并且独立于登录用户是一个受限项目。最好的方法是将文件存储在由环境变量 ALLUSERSPROFILE 组装的路径中。这是唯一对所有用户都平等的位置,并且所有用户通常都具有写访问权。您的应用程序数据应驻留在名为 < MyCompany > 或 < MyApplicationsName > 的私有(private)子目录中。类型

echo %ALLUSERSPROFILE%

在 Windows 命令行提示符下找出机器上的实际位置。

将您的数据存储在即:

%ALLUSERSPROFILE%\MyApp\

然后您的 dll 可以使用 getenv 查询 ALLUSERSPROFILE 的位置:

char *allUsersData = getenv("ALLUSERSPROFILE");

关于c++ - 在哪里存储 .properties 文件以在 C++ dll 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187128/

相关文章:

c++ - 对话框在 VS2015 中显示为黑色

c++ - 使用 wrld.js 时 QWebEngineView "Access-Control-Allow-Headers"错误

c# - 将窗口按钮置于前面

windows - 如何获取弹出菜单的所有者窗口

c++ - "cannot open include file"错误在 Visual C++ 2010 中意味着什么?

c++ - 用于积分的 std::numeric_limits<T>::epsilon()

java - 从 Java 服务器到多个 C++ 客户端的高效文件传输?

php: 加载 oracle 驱动程序给出错误 "Unable to load dynamic library - The specified procedure could not be found."

visual-studio - 如何使用 VSCode 在 GOARCH=386 的 64 位 GO 项目上使用 32 位 DLL

java - 如何从jobject中获取jstring? C++