|
|
Amr Shahin wrote: i said CString as an example of a class that u dont have its source code
Man ! I know that was just an example . But this is the same for ALL the classes. If you use a class in your program, then you need to have its header file. If you have it's header file, you can look to the members. Maybe your problem is because it uses a kind of interface ? And you just have access to public functions and the rest is defined in a derived class ? Is that the case ?
Or maybe you don't explain correctly the problem. What is this class ? Where does it comes from ? What do you have in the header file ? Please provide some more info then.
|
|
|
|
|
C++ supports only syntactic kind of encapsulaion. Also those visibility or access keywords(private,protected and public ) comes into picture only at compile time. At run time the whole object is just a memory block.
Access rules are the grammer defined by language and can force user to model the code in some defined fashion.I dont think it's directly possible to get all those details with binary image. I am not sure about object file. Is object file formats that each platform uses are published?
VikramS
-- modified at 9:10 Wednesday 10th May, 2006
|
|
|
|
|
|
Just for Info guys:
CString class source code is available. I meant STL/MFC library source code is available with any VC++ IDE.
|
|
|
|
|
There is, but it is no longer C++. It is compiler implementation code which is not in C++ standard.
Class (memory) structure is something like this:
this_pointer -> [vtable_pointer, dataField1, dataField2, ...]
where vtable_pointer points to the table of virtual functions:
vtable_pointer -> [func1, func2, ...]
So, in theory, you can get access to class (public/private do not make sense in binary) members like this:
data1 = *((char*)(*this) + 4);
data2 = *((char*)(*this) + 8); // or 12 or 16 depending on the type of data1
Notice, I said in theory, because in practice the compiler aligns data fields the way it wants, even the order matters. So, if you have an integer data field and a double data field you may get something like this:
[4 bytes for vtable_pointer, 4 bytes garbage, 4 bytes int, 8 bytes double]
There is no simple way to figure out the order and the types of data fields unless you disasm the binary to see which memory locations are accessed from public functions that you know.
That's not much, but I hope it'll be helpful.
-- modified at 12:28 Wednesday 10th May, 2006
|
|
|
|
|
|
when a class uses the methods of a library file(dll).
Since the binary file(dll) does not contain the type of access specifier(public,private)a method is assocaited with,How can the class identify whether the method is public or private ???
|
|
|
|
|
Hi all,
I have a class CMyStatic which inherites from CStatic.
In the class constructor i load 2 cursors (looking at their handle in debug they are looking fine).
I implement 2 events : ON_WM_SETCURSOR() and ON_WM_NCHITTEST()
in the hittest i check a certain position, and in the WM_SETCURSOR i check if i am in that position i do :
...
::SetCursor(HT_MYHITTEST == nHitTest ? m_hCursor1 : m_hCursor2);
return CStatic::OnSetCursor(pWnd, nHitTest, message);
problem is i never see the icon changed ???
help?
Yaron
Interface basics click here :
http://www.codeproject.com/com/COMBasics.asp
don't forget to vote
|
|
|
|
|
ok i've figured it out....
i need to return TRUE instead of CStatic::OnSetCursor(pWnd, nHitTest, message);
then it works
Yaron
Interface basics click here :
http://www.codeproject.com/com/COMBasics.asp
don't forget to vote
|
|
|
|
|
Question and answer are yours...
- NS -
|
|
|
|
|
you created question and you give answer to question result 1+1=1
|
|
|
|
|
am doing my final year masters in computer application and i hav to do a project as part of my academics. my project deals with desktop backup and i have completed the project, the thing is i need help in " Email Notification". ie.. if my backup task is over, i have to send a email to the specified email address. it should be simple, so please help me to rule out.. if really any one wanted to help me out...i will send in the project which i have done..can you help me out...
vivekkrishna
|
|
|
|
|
please send to me : e-mail: zhmster@gmail.com
alantop
|
|
|
|
|
|
You can use the MAPI functions.
or if you wish you can send the code.
_AnShUmAn_
|
|
|
|
|
i am getting following error in vc++ program.
fatal error (line Number): cannot open include file(file name),No such file or directory.
|
|
|
|
|
|
Can you be more specific
maybe you dont have your file or file is in different path
|
|
|
|
|
fatal error (line number):cannot open include file No such file or directory exits
|
|
|
|
|
|
|
which question?
|
|
|
|
|
|
toxcct wrote: you want an answer ?
i want a question...
You have one organ missing, that too a vital one...;P A good and tender heart
Nibu thomas
Software Developer
Faqs by Michael dunn
|
|
|
|