可能与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中。
答案 0 :(得分:1)
如果您想要读取程序中嵌入的某些数据而不是文件,那么您需要使用Windows API,就像您引用的问题一样。 ifstream
不处理嵌入式资源 - 这是一个标准的C ++类,它对Windows资源一无所知。
如果您想阅读常规文本文件,则无需嵌入任何内容 - 只需将文件放在启动程序的目录中即可。