我正在用 VC++ 编写 DLL,需要使用外部文本文件。我现在有这样的事情:
ifstream file;
string line;
file.open("C:\\Users\\Me\\Desktop\\textfile.txt");
getline(file,line);
file.close();
我知道我可以在资源中找到这个文件,对吗?
我通过转到“ResourceView”->“添加资源”->“导入”来添加文本文件。我选择了文本文件并创建了自定义资源类型。
我如何访问该文件以与上面的代码类似地使用?我有 Resource.h 但我应该用它做什么?
我也可以编辑我的资源文本文件吗?
假设:
- 资源类型为“TEXT”
- 资源 ID 是 MY_RESOURCE_ID(这将是您的 resources.h 中的常量)
- 您已将 EXE 或 DLL(以包含资源者为准)的 hInstance 存储到 m_hInstance 中。
将资源加载到内存并获取指向它的指针是这样完成的:
HRSRC hResource = FindResource(m_hInstance, MAKEINTRESOURCE(MY_RESOURCE_ID), L"TEXT");
if (hResource)
{
HGLOBAL hLoadedResource = LoadResource(m_hInstance, hResource);
if (hLoadedResource)
{
LPVOID pLockedResource = LockResource(hLoadedResource);
if (pLockedResource)
{
DWORD dwResourceSize = SizeofResource(m_hInstance, hResource);
if (0 != dwResourceSize)
{
// Use pLockedResource and dwResourceSize however you want
}
}
}
}
注意:在32位或64位版本的Windows上您不必卸载或解锁该资源,并且如果您再次获取该资源也不会泄漏内存;你总是得到相同的记忆。
要更新资源,请参阅更新 MSDN 中的资源.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)