I'm writing a DLL in VC++ and I need to use external text file. I have something like this right now:
ifstream file;
string line;
file.open("C:\\Users\\Me\\Desktop\\textfile.txt");
getline(file,line);
file.close();
I understand that I can have this file in Resources right?
I added my text file by going to "ResourceView" -> "Add Resource" -> "Import". I chose my text file and created custom resource type.
How can I access to this file to use similarly to the code above ? I have Resource.h but what should I do with it? Can I edit my resource text file too?
Open Solution Explorer add files you want to embed. Right click on the files then click on Properties . In Properties window and change Build Action to Embedded Resource . After that you should write the embedded resources to file in order to be able to run it.
Assumptions:
Loading a resource into memory and getting a pointer to it is done like this:
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
}
}
}
}
Note: You do not have to unload or unlock the resource on 32-bit or 64-bit vesions of Windows, and if you obtain the resource again you will not leak memory; you always get the same piece of memory.
For updating a resource, see Updating Resources in MSDN.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With