|
Generally, dynamic memory allocation is done on the heap.
This may be done using the new operator , malloc , GlobalAlloc etc.
I do not understand the rest of your question.
«_Superman_»
I love work. It gives me something to do between weekends.
|
|
|
|
|
I just assumed that if I created a Object with the new operator it would be around for lifetime of the app/CWinapp
|
|
|
|
|
Do you mean create an object of a class derived from CObject using the new operator ?
Yes, it will be available for the lifetime of the application.
The pointer tracking this object must be made available to all functions using this object.
For example, create a CDialog pointer as a member of your class.
In the constructor of your class create the CDialog object using new .
Now in any methods of your class you can access the CDialog object using the CDialog pointer.
class A
{
CDialog* m_pDlg;
public:
A()
{
m_pDlg = new CDialog(IDD_MYDLG);
m_pDlg->Create(IDD_MYDLG);
}
~A()
{
delete m_pDlg;
}
void One()
{
}
void Two()
{
}
};
«_Superman_»
I love work. It gives me something to do between weekends.
|
|
|
|
|
not only Class A but any other Classes in the App as long as I save the Pointer
thnakx again
|
|
|
|
|
Sure, as long as the pointer is accessible to the other classes.
«_Superman_»
I love work. It gives me something to do between weekends.
|
|
|
|
|
|
It doesn't matter if you save the pointer or not. The object is going to remain on heap until you use delete to remove it.
However, if you save the pointer to it and pass it around, it could be used from anywhere else within your process (other classes, threads, etc.,).
It is a crappy thing, but it's life -^ Carlo Pallini
|
|
|
|
|
I try to enumerate fonts utilizing InstalledFontCollection from GDI+.
All works but the collection does not contain some fonts which I can see, for example in standard font dialog.
.. such "MS Sans Serif"
Is there any parameter to get such "system" fonts too, or other class or function to enumerate them?
Thank you for help
viliam
|
|
|
|
|
Have you tried EnumFonts() and EnumFontFamilies() ?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"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
|
|
|
|
|
Thanx, this function works better for me
viliam
|
|
|
|
|
i would like to know how to create
a. Initially the size of the heap is read and an array of that size is created for the heap
b. Another array of size n+1 is created for the handle(key) and it contains impossible values i.e. upto infinity
c. After the first record with name m and priority p is inserted, (m,p) is stored in the heap, and the handle of m is updated to 0.
|
|
|
|
|
I'm probably missing a translator plugin...
a. are you talking about a heap data structure ?
b. it's not clear why you need to go to infinity, it's quite a large number, only Chuck Norris can count to infinity.
c. ... why not.
This signature was proudly tested on animals.
|
|
|
|
|
Hiya everyone,
I was searching for some way to find the memory address of a function such as TerminateProcess. Is there a way to do this? I've read something about the VirtualQuery function, but I don't exactly understand how that can be applied. Could anyone give me a few pointers? (and maybe somewhere I can learn some more about windows memory management.)
Thanks.
EDIT: this is what I'm reading right now.
modified on Thursday, September 24, 2009 2:23 PM
|
|
|
|
|
hxhl95 wrote: I was searching for some way to find the memory address of a function such as TerminateProcess.
Something like:
HMODULE hModule = LoadLibrary(_T("kernel32.dll"));
typedef BOOL (*PROC)(HANDLE, UINT);
PROC proc = (PROC) GetProcAddress(hModule, "TerminateProcess"); is much less succinct than Stuart's answer.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"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
modified on Thursday, September 24, 2009 4:58 PM
|
|
|
|
|
If you have (for example) TerminateProcess's definition pulled in via a header, then &TerminateProcess is sufficient...
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks (to both you and DavidCrow, but I can't reply to two threads with a single reply...), I'll try that. Can't believe I didn't think of that...
EDIT: Okay. So now if I hook TerminateProcess with my own dll, shouldn't the value of &TerminateProcess differ from the address of TerminateProcess in the kernel32.dll? I don't see any difference in the two addresses right now..
modified on Thursday, September 24, 2009 6:08 PM
|
|
|
|
|
hxhl95 wrote: but I can't reply to two threads with a single reply..
You can make a reply pointing to the other one's address... (sorry for the bad pun)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
hxhl95 wrote: I was searching for some way to find the memory address of a function
hxhl95 wrote: Could anyone give me a few pointers?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I knew someone was gonna say that sooner or later.
|
|
|
|
|
Hi All vc++ Masters,
I am migrating my vs-2003 code to vs-2008(on vista machine)...I have the compilation successfully.But i am getting the compilation errors in the debug mode...
I think It should be issue of multiple string datatypes in my project like: MFC Cstring, DblString datatype, char *. It might be mismatch of MFC/ATL Cstring datatype in old and new MFC library....The error is like this...
fwpipd.lib(fwstsrv.obj) : error LNK2019: unresolved external symbol "public: int __thiscall
DomIssuerInfo::HasSurIFeeBillableDebt(class DblDateTime const &,class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const & )
My related function is like this in the code:
BOOL DomIssuerInfo::HasSurvFeeBillableDebt(const DblDateTime& dtReference, const CString& csRatgQualCd )
Can anyone suggest to resolve this error,please....
Thanks in Advance.....
|
|
|
|
|
Vetukuri Raju wrote: Can anyone suggest to resolve this error,please....
Compare the project's Release vs. Debug settings.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"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
|
|
|
|
|
Hi Thanks for the reply..
I have compared,but not fixed.
Can you please further suggest me......?
|
|
|
|
|
Could someone with experience on this subject point me to sample code or article describing how to communicate between splitter panes in the same frame?
I did few searches and cannot find this subject covered in any useful detail.
I have posted message in left pane and can process it using WindowProc ( in same class).
I am using Spy and do not see how the WM_USER message got there.
I could just keep at it until I find the message-processing path by trial and error.
Any constructive help would be appreciated to speed up this process.
|
|
|
|
|
If you're using SDI or MDI, this sort of communication is already setup for you using the MVC or observer pattern.
From one view you call CDocument::UpdateAllViews[^]. This function will call each view's OnUpdate[^] member function to notify of the changes.
The documentation explains more about it.
«_Superman_»
I love work. It gives me something to do between weekends.
|
|
|
|
|
I have been using UpdateAllViews (with parameters) to add new view to doc / view, no problem here.
However, I run into assertion problem when trying to RemoveView using UpdateAllViews for now obvious reason ( after few frustrating hours of “coding”) - MFC is trying to update deleted view(s). Now I am using RemoveView in CSplitterWnd and after I figure out how to repaint the splitter pane after views removals I’ll be OK.
There is small catch here - the RemoveView literary removes the whole pane - including the background ( no surprise here) therefore one must CreateView immediately.
Thanks for your help.
|
|
|
|