|
Not possible, STL uses the CRT.
You may be right
I may be crazy
But it just may be a lunatic you’re looking for
-- Billy Joel --
Within you lies the power for good - Use it!
|
|
|
|
|
I was thinking that in some ways, STL is the CRT so the two cannot really be separated...but here's a thought:
If you define the STL to be just a collection of header-files, and the CRT to be things like new[], delete[] etc
Then it would be possible to write your own implementation of global new[], delete[], plus provide a few other necessary house-keeping routines like mainCRTStartup. Add the compiler option to strip the CRT, and maybe one could cobble something together which, when linked to your 'custom' CRT, could be twisted enough to meet the original requirement...
can't imagine why anyone would want to do this..
james
http://www.catch22.net
|
|
|
|
|
I have oppsite question. it should have more sense.
if you do not use stl stuff ,how to unlinke stl lib from my project?
it seem stl is default linked to any c++ project(I use vc)
|
|
|
|
|
What can be used on windows xp to debug an application at runtime? I cant step through it because its an exe thats launched by another exe, and it calls some dlls, which might be where the problem is occuring,
thanks,
sb
|
|
|
|
|
Is there a way of sending my class a pointer to my view's DC. I would like to draw to the DC and then "blit" it back to the screen. Until now I have only been able to get the DC for the main window.
Thanks.
|
|
|
|
|
CFrameWnd::GetActiveView will return a pointer to your CView derived window, you can call GetDC on that view
You may be right
I may be crazy
But it just may be a lunatic you’re looking for
-- Billy Joel --
Within you lies the power for good - Use it!
|
|
|
|
|
I tried what you suggested and I get an "illegal call of non-static member function" error.
CView* pView = CFrameWnd::GetActiveView();<br />
CDC* pDC = myview->GetDC();
I am new to the whole MFC programming scene so I am sure I am doing something really silly.
Thanks for the help.
-- modified at 14:00 Tuesday 28th February, 2006
|
|
|
|
|
masnu wrote: CView* pView = CFrameWnd::GetActiveView();
GetActiveView() is not a static function (i.e., one that can be called without an actual object). You must call it in the context of a CFrameWnd object, not CFrameWnd itself.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
David,
From what you said I assume I need to put the code in my CMainFrame class, which I did. I no longer get a compiler error, but I get an access violation error in the objcore.cpp file:
BOOL CObject::IsKindOf(const CRuntimeClass* pClass) const<br />
{<br />
ENSURE(this != NULL);<br />
ASSERT(AfxIsValidAddress(this, sizeof(CObject)));<br />
<br />
CRuntimeClass* pClassThis = GetRuntimeClass(); <br />
<br />
ENSURE(pClassThis);<br />
return pClassThis->IsDerivedFrom(pClass);<br />
}
What I have is:
void CMainFrame::Scroll()<br />
{<br />
CDC* pDC = CFrameWnd::GetActiveView()->GetDC();<br />
<br />
CStripChart* pStrip;<br />
pStrip->Scroll(pDC);<br />
}
Any suggestions?
Thanks.
|
|
|
|
|
masnu wrote: CStripChart* pStrip;
pStrip->Scroll(pDC);
This looks suspect. How has pStrip been initialized?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
When I debug, that code doesn't even run. The problem occurs when
CDC* pDC = CFrameWnd::GetActiveView()->GetDC();
is executed.
CStripChart is just a class I created to accept a DC and draw a grid to it and plot what ever data is sent to it. I have scroll function as a seperate thread. Could this be a problem?
Is there any way I can get a pointer to the view's DC and pass it to my class for furture use? Or would I need to pass a new DC everytime I wanted to update my window?
|
|
|
|
|
What does GetActiveView() return? If it is NULL , then dereferencing the pointer will cause problems.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
It doesn't return anything. I get the error before it returns.
|
|
|
|
|
When/how is CMainFrame::Scroll() called?
masnu wrote:
I get the error before it returns.
Since GetActiveView() and GetDC() are called within the same statement, are you sure?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
As a quick test I modified the app's file open command:
ON_COMMAND(ID_FILE_OPEN, &CMainFrame::Scroll)
|
|
|
|
|
masnu wrote: ON_COMMAND(ID_FILE_OPEN, &CMainFrame::Scroll)
What is the ampersand doing there?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
I just followed the same format as all the other ON_COMMAND declarations. I tried runnig the program without the ampersand and I still get the same problem.
|
|
|
|
|
void CMainFrame::Scroll()
{
CDC *pDC = this->GetActiveView()->GetDC();
You may be right
I may be crazy
But it just may be a lunatic you’re looking for
-- Billy Joel --
Within you lies the power for good - Use it!
|
|
|
|
|
I have created my own class CThread inherited from CWinThread,
I am Starting Threads using
for loop begin
AfxBeginThread(RUNTIME_CLASS(CThread));
for loop ends
I have created 15 thread in a loop, will they run parallely or with the time slice scheduling, Actualy I want that they should run parralelly , so that i can write in 15 different file simaltinoiusly.
I want to work fast on these threads.
Regards.
|
|
|
|
|
zahid_ash wrote: ...I have created 15 thread in a loop, will they run parallely or with the time slice scheduling...
They will never run in parallel on a uniprocessor machine.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
Is there any technique to write in the in the different file parallely or read from them .
i want to shorten the read write time
Regards.
|
|
|
|
|
|
I think so, as long as the read and write operations are not happening at the exact spot in the file. See LockFile() for more.
zahid_ash wrote: i want to shorten the read write time
Well, creating a bunch of threads on a uniprocessor machine is one way to not "shorten the read write time." The overhead of context-switching between all of the threads will be your demise.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
Will they run parallely on multi processor machine.
How can i demise the context switching of thread,
Regards.
|
|
|
|
|
zahid_ash wrote: Will they run parallely on multi processor machine.
Yes, but I've no experience with this. I think SetThreadIdealProcessor() will be required.
zahid_ash wrote: How can i demise the context switching of thread,
I'm not sure exactly what it is that you are asking here, but I think the answer is, "When more than one thread is involved, the processosr will need to periodically switch between them so that at any given monent, only one thread is actually active." This obviously incurs overhead that cannot be avoided.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|