My application is developed using Visual studio 2008 and it is MFC application. It is using one XML configuration file and it is deployed with the application. As per the change of requirment, we should not deploy the XML file in to customer machine instead we have to deploy the binary of that file.
How can I convert the XML in to binary file and get the data from the binary file again?
I am thinking serializtion is one option, is there any easy way to do this?
I imagine the changed requirement is to prevent your customers from seeing the details of the configuration file?
If so, I'd suggest simply obfuscating the XML by running it through some encoder/decoder. This way, you still have the benefits of an extensible and flexible format, at the cost of an extra step when reading/writing the file.
Of course, how complicated this would be depends on what XML parser you are using, as I don't think there's one in MFC.
If your parser can parse from and export to a string - and if the string isn't excessively large - you can simply read your encoded binary data from file, decode it to a string, and parse that. Similarly, when saving the config, you'd export to a string, encode that, and save it to file. If your parser needs to work with files, you can use the %TEMP% area for the conversion.
There are plenty of encoders you could use, from base64 to libzip to various crypto algorithms, so just pick one that is quick, and simple to integrate.
I want to develop in an embedded system. It's OS dos not support any graphic API and functions except SetPixel for developer.
I need to use some standard font for text drawing.
If you have any idea to do that, please share with me.
You'll have to write your own routines for drawing text.
The way this was done back in the day was to create a fixed-size font (usually consisting of 8x8 monochrome pixels, so each character would take 8 bytes to describe), and a simple look-up algorithm (in this case something like "base address of font + character code * 8).
If you have to work pixel by pixel, I'd start with writing a routine to draw a row of 8 pixels, and use that to draw the whole character.
You'd have to convert them to your own format, but that's reasonably trivial. If you take the first (PET), resize it so that there's one real pixel per used pixel, and save the image as a monochrome (2-bit) bitmap, you can read it out from there.
I want to insert into a listview an item with an image :
BOOL CTestListImageView::PreCreateWindow(CREATESTRUCT& cs)
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.style |= LVS_REPORT;
// TODO: You may populate your ListView with items by directly accessing
// its list control through a call to GetListCtrl().
CListCtrl& ListCtrl = GetListCtrl();
ListCtrl.InsertColumn(0, _T("Machine model"),LVCFMT_LEFT, 200);
ListCtrl.InsertColumn(1, _T("Description"), LVCFMT_LEFT, 250);
int nIndex = ListCtrl.InsertItem(0, _T("Test"),2);
CTestListImageView class is derived from CLIstView, the m_TraceImageList data member is type of CImageList class, and have 10 images ...
still, the listview have not any image ( icon ) ... why ?
Why ? What I have do wrong ?
One mention : I prefer to insert an item with image with follow prototype :
int InsertItem( int nItem, LPCTSTR lpszItem, int nImage );
Have you tried different
values for the cx and nFlags parameters?
I have try in follow ways :
m_TraceImageList.Create(IDB_BITMAP_TRACEIL,16,1,ILC_COLOR | ILC_MASK);
m_TraceImageList.Create(IDB_BITMAP_TRACEIL,16,2,ILC_COLOR | ILC_MASK);
m_TraceImageList.Create(IDB_BITMAP_TRACEIL,16,1,ILC_COLOR8 | ILC_MASK);
but un vain ...
...the m_TraceImageList data member is type
of CImageList class, and have 10 images ...
are those images being added ?
these iages are into an bitmap resource, IDB_BITMAP_TRACEIL
named ... I use the same technique for an treeview and goes well ...
I want to show a modeless dialog (in a SDI project) that I can use it when any other modal dialog of project is open.
I set the always on top style so I can see it when any other project's modal dialog is open, but I can't use it. I must close the modal dialog first and after that I can use my first dialog(modeless).
I set the parent window to CMainFrame and then NULL, but both ways did not work fine.
Also I tested some other styles, but found nothing.
Is there any way to do this?
<blockquote class="FQ"><div class="FQA">Hadi Dayvary wrote:</div>...but I can't use it.</blockquote>
Why? What's the problem? Does it show but can't be interacted with? Does it show but stays in the background? Does it fail to show? How, and when, are you displaying it?
<blockquote class="FQ"><div class="FQA">Hadi Dayvary wrote:</div>I must close the modal dialog first and after that I can use my first dialog(modeless).<BR></blockquote>
This sounds like normal behavior of a modal dialog.
<p align="right"><small>"One man's wage rise is another man's price increase." - Harold Wilson<br /><br />"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons<br /><br />"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous</small></p>
I am stuck with this problem since weeks. Apparently I am new to Visual Studio. I have a client dll which exposes some APIs . I am supposed to create a C++ Unit Test project in Visual Studio 2005 and test the methods in the dll. Unfortunately I am not able to invoke the methods , I often get linking errors such as
"error lnk2031: unable to generate p/invoke for"
The .h file has some function exports .I am pasting part of the .h file here