|
The first step is to learn C++ itself, without any Windows stuff. IMO, you should then learn MFC, and finally learn Win32, to gain an understanding of what MFC is taking care of for you. This breaks down what you're learning so you can focus on one bit at a time. Learning Win32 then magically finding you don't need to know it anymore is just too much to bite off at once, IMO.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
After seeing a lot of the IM log managers out there I wanted to create a C++ program that via a command line prompt would copy IM log files into a a buffer or text file. While I get access the space in C:\Doc and Settings\GAIM\logs whatever, I cannot figure out how to open those files/ or write them into a buffer or text file. I am creating the program in Visual Studio for WIndows XP platforms.I know I must be missing a simple windows function call but any help would be greatly appreciated! Thanks
|
|
|
|
|
bobfilar wrote: I cannot figure out how to open those files
Your mean read a text file ? You need to use an ifstream. Read my iostreams articles, or google ifstream for more info.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
well... kinda. After reading you article on iostream modifiers and "deriving your own stream" I understand what you mean, but a for instance in what I am trying to do is this. An IM client, say GAIM, stores logs and user preferences on a .xml file. I am wondering if I can code within my program the ability to enter in my program via the command prompt and have it point towards .xml file, but instead of opening the file to view on my desktop its contents get written into another file, say a text file or whatever you feel like. I too immediately looked at iostream for the project, but was still stuck on the implementation. Thanks for the advice though!
|
|
|
|
|
If the file you're reading is XML, then you want an XML DOM implimentation, such as IXMLDocument, which will allow you to read the XML as XML. In fact, if I were doing this, I'd use XSLT to transform the XML into the text I wanted, then an ofstream to write it back to disk.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
There is picture(IDB_BITMAP1) on the dialog. after I clicked pic that I choosed, then I got pic instantly disappearing. I am trying to figure it out to get pic appear. can you tell me what did I wrong?
void CAssignDlg::OnPaint()
{
CPaintDC dc(this);
CBitmap mybmp;
CPoint org(0,0);
HBITMAP hBitmap;
HANDLE hImageFile;
if(m_bNoPicture)//before choose pic
{
CBitmap mybmp;
mybmp.LoadBitmap(IDB_BITMAP1);
m_Picture.SetBitmap((HBITMAP)mybmp);
}
else)//after chose pic
{
HBITMAP hBit = (HBITMAP)LoadImage( NULL,
"C:\\Test.bmp",
IMAGE_BITMAP,
0,
0,
LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE );
CBitmap* b = new CBitmap;
b->Attach(hBit);
m_Picture.SetBitmap(*b);
//DeleteObject(hBit);
}
}
|
|
|
|
|
This is at least a memory leak. Load the bitmap as a member variable, not in your paint handler. You will run out of GDI resources pretty quickly, in fact, that may be what is happening.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
I am little confusing about "load the bitmap as member variable, not in your paint handler". can you explain it little more?
|
|
|
|
|
class CAssignDlg
{
HBITMAP m_Bitmap; <- THIS is a member variable
void CAssignDlg::OnPaint() <- THIS is a paint handler.
{
CPaintDC dc(this);
CBitmap mybmp;
CPoint org(0,0);
HBITMAP hBitmap;
HANDLE hImageFile;
if(m_bNoPicture)//before choose pic
{
CBitmap mybmp;
mybmp.LoadBitmap(IDB_BITMAP1);
m_Picture.SetBitmap((HBITMAP)mybmp);
}
else)//after chose pic
{
HBITMAP hBit = (HBITMAP)LoadImage( NULL,
"C:\\Test.bmp",
IMAGE_BITMAP,
0,
0,
LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE ); <- THIS code loads an image EVERY TIME the form gets painted.
CBitmap* b = new CBitmap;
b->Attach(hBit); <- THIS creates a new pointer every time, and because it's not a member variable, you lose it ( you can't ever clean this memory up )
m_Picture.SetBitmap(*b);
//DeleteObject(hBit);
}
}
I would have a CBitmap * in your class, and set it to NULL. Wrap the code to assign the value in a block that checks if the pointer is currently NULL. Delete the pointer in your destructor.
}
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Did u try declaring mybmp as global
CBitmap mybmp;
Vikas Amin
Embin Technology
Bombay
vikas.amin@embin.com
|
|
|
|
|
Hi all:
I am a quite new visual c++.net user. Does anybody know how to compile c++ program in command line?? And also, I need to do a OpenGL project. Does anybody know how to configure opengl in .NET please??
Thanks in advance!!!
Asura
|
|
|
|
|
If you google for nehe, he's got the best OpenGL tutorials on the web.
Why do you want to compile on the command line if you've got the .NET IDE ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Because I downloaded many code written in plain C, it's more convenient to compile it in command line. And also, I want to learn to use command line rather than using .NET IDE. Another reason is I have to port the application to linux system later.
Asura
|
|
|
|
|
any idea on some good localization tools?
Jim456
|
|
|
|
|
TRY using StringDB at www.swbox.com
- supports ALL languages in the world (ASCII, UNICODE, UTF-8)
- uses MS Excel files for translation
- You can change language and strings without recompiling the software
- Non-technical people can prepare new language releases
- Is being used by embedded devices and also PC software
coldstone
|
|
|
|
|
Multiple filename for single resource i.e Icon is not happening.any suggestions on the sharing of filenames between two icons in an .rc file?
Jim456
|
|
|
|
|
Can anyone tell me why this style would work in one list control, but not another (in the same program)?
------- sig starts
"I've heard some drivers saying, 'We're going too fast here...'. If you're not here to race, go the hell home - don't come here and grumble about going too fast. Why don't you tie a kerosene rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Nope.
Try examining the respective controls in Spy++ (or equiv.) - look for other styles that are different.
|
|
|
|
|
Hi all,
my application which instaled on a client server has crashed several times !!
since Drwasn32 app does not instaled on their server , I just dont know where the application crashed (might be one of the atttached dlls)
beside an address within ntdll.dll I dont have nothing
any help is welcome
thanks
|
|
|
|
|
Well, we've got nothing to go on either. In this sort of case, I tend to write a lot of logging code, and check the logs that are generated to work out where in the app the crash is happening.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Hello.
You say the crash happens in ntdll.dll. That normally indicates that you are calling some function in ntdll with invalid parameter(s).
The most common cause of such a behaviour (in my experience) is either uninitialized variables or using freed memory in function calls to ntdll.
If it works well in debug mode, you should definately look for uninitialized variables.
Remember that allocated memory is filled with nulls in debug builds, and completetly uninitialized in release builds, contaning garbage.
If your app crashes in your code, read this splendid and utterly useful article:
http://www.codeproject.com/debug/mapfile.asp[^]
That article has been of great help to me.
Kakan
|
|
|
|
|
I have an MDI application (originally written in VC6, now using VC7) and the
tooltips for the toolbar on the mainfrm window stop displaying when I open a
second document...if only 1 is open then they display fine. The status text
on the status bar continues to display but the tooltips do not.
Any ideas?
cje
|
|
|
|
|
Is there any way to strike through a line on a list ctrl?
I can delete a line and I can change it different colors,
but Id like to draw a line that strikes through the entire
line instead. I just cant figure out how.
Please, any response any one can give me will be greatly
appreciated.
Sincerely,
Danielle Brina (an overworked graduate student)
|
|
|
|
|
In my opinion this has to be owner drawn . I dont think there is an API for doing the same .
You might need to draw a line after getting the coordinates of the same .
Correct me if i m wrong
Engineering is the effort !
|
|
|
|
|