c++ - DLL 执行程序中的环境路径

标签 c++ visual-studio dll

可能类似于this . 我有一个在 Visual Studio 中创建的 C++ DLL。在 DLL 中是一个 X 类,所有函数都是 public static 和 exported(使用 _declspec)。我想在该类的一个函数中读取一个文本文件(例如 'file.txt' )。

_declspec(dllexport) void XClass::readFile()
{
    ifstream file;
    file.open("file.txt");
    if(!file.is_open()) return;
    int x;
    file>>x;
    cout<<x<<endl;
}

问题是,我不知道如何将 txt 文件添加到 DLL。我已经把它添加到VS项目的资源中了,但是好像没有添加,因为当我运行另一个包含DLL文件的项目时,is_open()失败了。我也尝试将 file.txt 添加到新项目中,但没有成功。如何使用DLL文件中的资源,或者更好地将它们添加到DLL中。

最佳答案

如果您想读取程序中嵌入的一些数据而不是文件,那么您需要像您引​​用的问题中那样使用 Windows API。 ifstream 不处理嵌入式资源——这是一个标准的 C++ 类,对 Windows 资源一无所知。

如果你想读取一个普通的文本文件,你不需要嵌入任何东西 - 只需将文件放在你启动程序的目录中。

关于c++ - DLL 执行程序中的环境路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34996306/

相关文章:

c++ - 在 C++ 中创建一个用于不断计算数学函数的 dll

c++ - LINK2019 : unresolved external symbol for a function returning shared_ptr<int>

c++ - linux 指针、引用和方法

visual-studio - 如何告诉链接器我希望在 Debug模式下构建的 dll 具有 d 后缀

c# - Visual Studio 扩展 : Change the hint path of an assembly reference

c++ - 永远不会调用全局 CBT Hook

c++ - Boost.Asio - 轮询命名管道

c++ - QT信号和槽传递变量到另一种形式

C++ 在文件中存储对象

C# 4.0/EF - SQL Server Compact 不支持服务器生成的键和服务器生成的值