Solved

Is it possible to embed a text file into Visual C++ static library

Posted on 2009-05-04
1
1,489 Views
Last Modified: 2013-12-14
I'm usual Visual Studio 2005.

When compiling a Visual C++ executableI can embed a text file when compiling by setting the project properties as:
     Configuration properties -> General -> CLR Support->CLR Support enabled
     Link -> Input -> Embed managed Resource -> name of text file added

If I am generating a Visual C++ static library, can I also embed a text file in it when compiling?  If yes, how do I do it?  The properties for a static library project allows me to enable CLR support but I can't find any property such as "Embed Managed Resource" that allows me to include the text file name that I want to embed.
0
Comment
Question by:khrispy
1 Comment
 
LVL 2

Accepted Solution

by:
Gregdo earned 200 total points
ID: 24329251
Yes, it is possible to embed a text file in an unmanaged DLL or EXE.  You do it as a resource.  Go to the resource view. Right click on your resource file and choose Add Resource..., Import..., select the file that you want to embed and hit Open, enter a name for the custom resource type (e.g. TEXT).  Hit OK.

You now have a text resource in your project.  If you check the code in the .RC file, you will see that the actual file is not stored in the RC file, just a link to the actual file.  At compile time, the actual file will be copied into the EXE or DLL that you build.

The code below shows how to read the text file from the program resources.  This code doesn't do any pointer checking, so you might want to add some in your own code.
const HINSTANCE hInst = AfxFindResourceHandle(MAKEINTRESOURCE(IDR_TEXT1), TEXT("TEXT"));
 
const HRSRC hResDll = FindResource(hInst, MAKEINTRESOURCE(IDR_TEXT1), TEXT("TEXT"));
 
// load
const HGLOBAL hSQL = LoadResource(hInst, hResDll);
 
// lock
LPCTSTR pszSQL = (LPCTSTR)LockResource(hSQL);
const DWORD dwResourceSize = SizeofResource(hInst, hResDll);
 
// You now have a pointer to the embeded TEXT file and it's length so you can copy it somewhere
 
//unlock
UnlockResource(hSQL);

Open in new window

0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Welcome my friends to the second instalment and follow-up to our Minify and Concatenate Your Scripts and Stylesheets (http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/A_4334-Minify-and-Concatenate-Your-Scripts-and-Stylesheets.html)…
How to install Selenium IDE and loops for quick automated testing. Get Selenium IDE from http://seleniumhq.org Go to that link and select download selenium in the right hand columnThat will then direct you to their download page.From that page s…
The viewer will learn how to use NetBeans IDE 8.0 for Windows to connect to a MySQL database. Open Services Panel: Create a new connection using New Connection Wizard: Create a test database called eetutorial: Create a new test tabel called ee…
THe viewer will learn how to use NetBeans IDE 8.0 for Windows to perform CRUD operations on a MySql database.

829 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question