|
I am inferring some things from my learning experience with VC++. I'd like to check if I am correct.
1. Each file is compiled separately and independently. This means each .ccp and .h file is compiled as a stand alone unit.
2. If #1 is correct, then each file must contain all the class and function declarations to which any code in that file will refer.
3. The same header file with class declarations can be #included in several other files. In other words, trans.h can be included in both abc.ccp and xyz.cpp.
Is this correct? Thanks.
|
|
|
|
|
Oliver123 wrote: 1. Each file is compiled separately and independently. This means each .ccp and .h file is compiled as a stand alone unit.
*.cpp files are compiled, not *.h files. CPP files are where the implementation for classes, functions, etc are placed. H files are where they are defined. This allows other modules (classes, libraries, etc) to see the definition of a function or class without having to know how everything is implemented during the compilation.
Oliver123 wrote: 2. If #1 is correct, then each file must contain all the class and function declarations to which any code in that file will refer.
You can't use a function/class/variable/etc unless you know how it is defined.
Oliver123 wrote: 3. The same header file with class declarations can be #included in several other files. In other words, trans.h can be included in both abc.ccp and xyz.cpp.
This is correct. Though usually you place #pragma once or #ifdef/#define statements around the header file content to prevent a file from being included multiple times.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
Oliver123 wrote: his means each .ccp and .h file is compiled as a stand alone unit.
it helps to think of #include "foo.h" as doing exactly what "include" implies: the preprocessor reads the contents of foo.h and, in effect, sticks that in the place of the #include line. the compiler doesn't really look at foo.h directly.
and, you can #include anything.
|
|
|
|
|
Hey,
how can I draw a rotated ellipse with MFC. The only way I found out to draw ellipse is to use CDC:Ellipse. The way requires a rect...
Is there any other way?
Thank you for your help
|
|
|
|
|
One way would be to draw it unrotated and then to use CDC::ModifyWorldTransform to do the rotation.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
Is there online thorough and complete C/C++ manual with all minute details of abstract, virtual, overloading etc..
9ine
|
|
|
|
|
Have you tried Googling for the information?
"Money talks. When my money starts to talk, I get a bill to shut it up." - Frank
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
|
For online sources ... use Google.
For offline, check out books by Scott Meyers and Herb Sutter.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
Yes, but you have to pay for it. The C++ standard is available in PDF from ANSI here[^] (costs $30).
|
|
|
|
|
|
From people that know, are skills in VC++ translateble to the embedded / mobile version? What are the main differences?
-- modified at 11:27 Friday 25th August, 2006
A cynic is a man who, when he smells flowers, looks around for a coffin. -H.L. Mencken
|
|
|
|
|
To some degree. Mobile SDK is usually only a subset of the regular SDK, with some mobile extensions.
Best,
Jun
|
|
|
|
|
Thanks
A cynic is a man who, when he smells flowers, looks around for a coffin. -H.L. Mencken
|
|
|
|
|
In general, the embedded version of the SDK is a subset of the non-embedded version. Basic C++ skills are the same, but you do have to take extra care when dealing with memory allocation and stack limitations.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
Thanks.
A cynic is a man who, when he smells flowers, looks around for a coffin. -H.L. Mencken
|
|
|
|
|
When I am using CryptEncrypt() & CryptDecrypt()functions in my VC++ project which is UNICODE, I'm getting junk values after decrypting. But when the project is _MBCS(Multibyte-character) it is working fine. Did any of you encountered this problem ?
Is there a workaround ?
|
|
|
|
|
can you post the relevant parts of your code?
|
|
|
|
|
hi all,
i am creating multiple objects for the same class
like calling this function as many times.
Void CMainWindow::OpenDefaultChatwindow()
{
m_dlgChatWindow = new CChatWindow();
m_dlgChatWindow->Create(IDD_DIALOG_CHAT_WINDOW,GetDesktopWindow());
m_dlgChatWindow->SetNewParent(this);
m_dlgChatWindow->ShowWindow(SW_SHOW);
}
but when i delete the object i am able to delete only one object then it is showing memory leaks
because i created multiple same objects and deleting only one object.
How to solve this problem ?
plz help in this issue
venu
|
|
|
|
|
Simply by deleting the previous object before creating a new one (that seems obvious):
Void CMainWindow::OpenDefaultChatwindow()
{
if (m_dlgChatWindow )
delete m_dlgChatWindow ;
m_dlgChatWindow = new CChatWindow();
m_dlgChatWindow->Create(IDD_DIALOG_CHAT_WINDOW,GetDesktopWindow());
m_dlgChatWindow->SetNewParent(this);
m_dlgChatWindow->ShowWindow(SW_SHOW);
}
-- modified at 10:12 Friday 25th August, 2006
|
|
|
|
|
Mmhhh, maybe I answered too fast to your question. You would like several windows opened together or just one ? If just one, see my previous post.
In the other case, you have to store all those pointers in an array and delete them afterward (or when it is needed). I suggest that you take a look at the std::vector class to store all these pointers.
|
|
|
|
|
Hi,
I want to end the EXCEL.exe process in task manager through application. Is their is any API which get the handle of process and end it .
Can anybody help me out of this problem?
Thanks:
Mike
|
|
|
|
|
See TerminateProcess(...)
|
|
|
|
|
Hi,
Thanks. But can you please elaborate it in more detail?
Thanks:-
Rajiv
|
|
|
|
|
well you have four ways.
1-see msdn
2-a lot of articles about process
3-an article from Mr David Crow about processes
4-see here
<br />
(1)EnumProcesses(this method retrieve identifier for each process);<br />
<br />
(2)hProcess = OpenProcess(PROCESS_VM_READ | PROCESS_QUERY_INFORMATION, FALSE,process identifier);<br />
<br />
(3)TerminateProcess(hProcess ,0);<br />
I hope its good for you
|
|
|
|