DLL执行程序中的环境路径

时间:2016-01-25 15:32:07

标签: c++ visual-studio dll

可能与this相似。 我有一个我在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()失败。我也尝试将file.txt添加到新项目中,但没有成功。如何在DLL文件中使用资源,或者更好地将它们添加到DLL中。

1 个答案:

答案 0 :(得分:1)

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

如果您想阅读常规文本文件,则无需嵌入任何内容 - 只需将文件放在启动程序的目录中即可。