我创建了一个 .properties 文件,其中包含一些简单的key = value对。我从一个示例 c++ 控制台应用程序中尝试了它,使用导入的 java 类,我能够访问它,没问题。
现在,我正在尝试以相同的方式从另一个(非托管)c++ 项目调用的 C++ dll 中使用它。
由于某种原因,该文件未被访问。
也许我的文件位置是错误的。我应该把它存放在哪里?
还有什么问题?
TIA
我创建了一个 .properties 文件,其中包含一些简单的key = value对。我从一个示例 c++ 控制台应用程序中尝试了它,使用导入的 java 类,我能够访问它,没问题。
现在,我正在尝试以相同的方式从另一个(非托管)c++ 项目调用的 C++ dll 中使用它。
由于某种原因,该文件未被访问。
也许我的文件位置是错误的。我应该把它存放在哪里?
还有什么问题?
TIA
正如您提到的“DLL”,我猜您正在使用 MS Windows。从 DLL 中查找文件,并且独立于登录用户是一个受限项目。最好的方法是将文件存储在由环境变量组装而成的路径中ALLUSERSPROFILE
。这是唯一一个与所有用户相同的位置,并且所有用户通常都具有写访问权限。您的应用程序数据应位于名为 <MyCompany> 或 <MyApplicationsName> 的私有子目录中。类型
echo %ALLUSERSPROFILE%
在 Windows 命令行提示符下找出机器上的实际位置。
将您的数据存储在即:
%ALLUSERSPROFILE%\MyApp\
然后,您的 dll 可以使用 getenv 查询 ALLUSERSPROFILE 的位置:
char *allUsersData = getenv("ALLUSERSPROFILE");