DLL 执行程序中的环境路径

Environment Path in DLL executed programs

本文关键字:环境 路径 执行程序 DLL      更新时间:2023-10-16

也许与此类似。我有一个在Visual Studio中创建的C++DLL。DLL 中是一个 X 类,所有函数都是公共静态的,并导出(使用 _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()失败。我还尝试将文件.txt添加到新项目中,但没有成功。如何使用 DLL 文件中的资源,或者更好地将它们添加到 DLL。

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

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