|
Chris Losinger wrote:
come now. there's a huge difference between having 95% of C++ and having no C++ at all.
A world of difference. But at least SOME of that difference is knowing what we'd be missing. I believe Office is still written Petzold style, as it predates MFC. Do you think it suffers for it ?
Chris Losinger wrote:
likewise, i've never once heard a co-worker complain about "compliance".
It's obvious that
a. We could write whatever we wanted in assembler
b. We're not going to notice the absence of stuff we don't know should be there, and
c. Any language feature is about convenience to programmers, not standing between our being able to impliment any particular feature.
Chris Losinger wrote:
ie. it's academic.
I am certain if Microsoft had not implimented STL and it could not be plugged in, you'd feel the same way about it. Anyone can live without the STL. Anyone can live without partial template specialisation. That does not mean they are not useful, or that you would not find a use for them, once they are on the table.
Chris Losinger wrote:
and the static library issue alone is enough to stop me from using it.
????? What do you mean ? ( I've mostly been coding C# at home, and VC6 at work )
In any case, I found I grew to like it, features like being able to browse parent classes more than make up for learning an essentially new IDE IMO. But you're entitled to your view, of course.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
Christian Graus wrote:
That does not mean they are not useful, or that you would not find a use for them, once they are on the table.
all true.
my point is: i hate the package the compiler is shipped in. the new compiler features aren't enough to get me pat the UI.
Christian Graus wrote:
Chris Losinger wrote:
and the static library issue alone is enough to stop me from using it.
????? What do you mean ?
i've bitched about this one here enough, i thought i'd save you the rehash... the same static .LIB made with VC7 is 3x the size of the one made with VC6. this is confirmed by MS and is (largely) a result of increased "locale" support. even though i only use the very basics of std::string in my image libs (=, +=, c_str), my .LIB size triples.
-c
“If it turns out that I’m actually the one who did it, then looking for the real killers would be a big old waste of time.”
-- OJ Simpson
|
|
|
|
|
Chris Losinger wrote:
my point is: i hate the package the compiler is shipped in.
Well, that's fair enough, and is a different issue. If you personally hate the UI that much, then nothing else will help.
Chris Losinger wrote:
3x the size
I had not seen this, and I agree - it's awful, but also just SO typical Microsoft. Do you think Seagate pay them a kickback ?
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
The < sarcasm level=100%> ... <sarcasm> tag was implicit, wasn't it ?
Christian please, send me your MS DTD...
How low can you go ? (MS rant)
|
|
|
|
|
I'm lost here - are you saying that Microsoft have made a fanfare about achieving something, hired the chairman of the standards committee to help them do it, and won't attempt to deliver ?
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
He he, can't figure out why they didn't manage to hire Gosling as well.
How low can you go ? (MS rant)
|
|
|
|
|
Hi,
How does the concept of friend functions really defy the object oriented approach of C++.In many books I found that C++ is not truly OOP language because of friend functions being one of the many reasons.But no where was the reason why is it so?
Can any body come out with the complete explanation.
Thanks,
Abhishek.
Learning is a never ending process of Life.
|
|
|
|
|
here's one explanation as to why they don't defy OOP: http://www.parashift.com/c++-faq-lite/friends.html#faq-14.2[^]
i guess some people feel that a friend class is gaining unfair access to your object's innards. such people should get out more, IMO .
-c
“If it turns out that I’m actually the one who did it, then looking for the real killers would be a big old waste of time.”
-- OJ Simpson
|
|
|
|
|
In a nutshell, I think people CONSTRAINED to OOP, for example Java programmers, can't get that C++ is not PURELY OOP. Nevertheless, I don't see why friends are a problem. They allow control of data hiding, they do not negate it.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
I use the Class CDAORecordset in my program, and it can run correctly on the computer whith VC++ Installed, But it can't Run on the computer whithout VC++ Installed.
Isn't the lack of the DLL files?
VCBeginer
|
|
|
|
|
Yes you need the DAO dll's. Can't remember the names of them. Most decent install software will determine this for you.
Wenn ist das Nunstück git und Slotermeyer? Ja! Beierhund das oder die Flipperwaldt gersput!
|
|
|
|
|
I want to create a player for play OGG file.
I decide to use DirectShow to play it. But I don't know how to use the Vorbis Decoder filter.
I have download OggVorbis DirectShow Filters from http://tobias.everwicked.com/download.php?OggDS0995.exe .
It includes four filters. I want to use Vorbis Decoder.
What I have to do to use this filter to play OGG file?
|
|
|
|
|
Launch the FilterGraphManager, that's one of the .exe provided.
Then Insert this filter in the client area, and right-click Render on its output pin. This should auto-build the necessary filter graph.
That was the get-your-hands-on-it phase.
Now to do it by code, just take any sample movie player in the SDK, and do just this :
HRESULT CPlayerDoc::AddNewVideoRendererToGraph()
{
HRESULT hr ;
IBaseFilter *pFilter=NULL;
hr = CoCreateInstance(CLSID_ARST_VIDEORenderer, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (LPVOID *)&pFilter) ;
if (FAILED(hr))
{
switch (hr)
{
case E_INVALIDARG : TRACE("INVALID_ARG\n");break;
case REGDB_E_CLASSNOTREG : TRACE ("REGDB_E_CLASSNOTREG\n");break;
case CLASS_E_NOAGGREGATION : TRACE ("CLASS_E_NOAGGREGATION\n");break;
default:break;
}
return E_FAIL ;
}
hr = m_pGraph->AddFilter(pFilter, L"ARST VIDEO RENDERER") ;
if (FAILED(hr))
{
pFilter->Release();
return E_FAIL ;
}
return S_OK ;
}
And for the rendering part :
BOOL CPlayerDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
WCHAR wPath[MAX_PATH];
DeleteContents();
if ( !CreateFilterGraph() )
{
AfxMessageBox(IDS_CANT_INIT_QUARTZ);
return FALSE;
}
::MultiByteToWideChar( CP_ACP, 0, lpszPathName,
-1, wPath, MAX_PATH );
AddNewVideoRendererToGraph();
if (FAILED( m_pGraph->RenderFile(wPath, NULL) ))
{
AfxMessageBox(IDS_CANT_RENDER_FILE);
return FALSE;
}
How low can you go ? (MS rant)
|
|
|
|
|
i am reading a code from a text book:
long WINAPI WaitToEat(long lParam)
{
CPhilosopher* pPhilo = (CPhilosopher*)lParam;
DWORD dwEatTime = 1000 + GetCurrentThreadId();
_tprintf(_T("Philosopher %d is alive!\n"), pPhilo->m_nID);
while(g_fDone == FALSE)
{
// Wait for my two chopsticks.
WaitForMultipleObjects(2,
pPhilo->m_hSticks,
TRUE,
INFINITE);
//
// Wait satisfied - I have both chopsticks
SayEat(pPhilo);
Sleep(dwEatTime);
SayThink(pPhilo->m_nID);
// Release both chopsticks.
ReleaseMutex(pPhilo->m_hSticks[1]);
ReleaseMutex(pPhilo->m_hSticks[0]);
}
return 0;
}
My QUESTION is:
is the mutex locked between WaitForMultipleObjects and ReleaseMutex??
I dont see any method that looks similar to:
pPhilo->m_hSticks[0].LockMutex()
I presume as soon as WaitForMultipleObjects returns, "WaitForMultipleObjects" also lock the mutex for "this" thread??
Thanks
norm
|
|
|
|
|
Yes. The mutex is "owned" via the wait function.
All others will have to wait until you release it
and it becomes signaled again. (signaled state
indicates availability)
|
|
|
|
|
thanks. i did a very simple test that launch two threads, the first thread did NOT release the mutex, so the second thread was blocked. It reconfirmed the hypothesis.
norm
|
|
|
|
|
Is there a quick way to check if a server socket has closed unexpectedly, such as when the power on the machine is turned off? I find that the client socket eventually gets a WSAECONNRESET error but it takes up to a minute.
|
|
|
|
|
At last,how do you solve that question?I also encountered that question,can you help me?
|
|
|
|
|
Hi...
I want to some item in the list box...i have tried all the sample in this side...but somehow i don't know it not work...I using the EVC++ 3.0 for win CE...
Someone please help......
Rgds
;);P ((
:_Rocket_:
|
|
|
|
|
hi,
How to use lParam and wParam to send values to message queue?
Examples are welcomed.
Thank u in advance.
Extreme programming. Do the No.1
|
|
|
|
|
I believe wParam and lParam are both 32 bit types. To use them you can cast any data type that is 32 bits or smaller to either lParam or wParam and past them as arguments to the ::PostMessage() function.
Example:
<br />
CObject *pObj = new CObject();
<br />
::PostMessage(hWnd,MESSAGE_ID,(WPARAM)pObj,NULL);<br />
Then handle the message in the window that recievies it by declaring it in the message map and writing a function to handle the message.
<br />
ON_MESSAGE(MESSAGE_ID,OnMessage)<br />
<br />
LRESULT CSomeClass::OnMessage(WPARAM wParam, LPARAM lParam) {<br />
CObject *pObj = (CObject *)wParam;<br />
}<br />
Note: none of the code is tested and written off the top of my head.
- Anatari
|
|
|
|
|
As Anatari said, you can cast any 32-bit value that you would like to fit inside of wParam and lParam. However there are a few things to be aware of.
If you are posting a message to the message queue, then you cannot use objects that were created on the stack. That is because these objects will most likely be destroyed before the posted message is processed. Instead you will need to create a mechanism to allocate the object on the heap, and destroy the object after the message has been processed.
If your item is being sent to the message queue, it will be safe to pass items that are located on the stack.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
stack vs heap
good point =)
norm
|
|
|
|
|
I am writing a MFC MDI application. At a particular point I am displaying a Dialog in a separate thread that contains a progress meter. I am using the AfxBeginThread function supplying the CRuntimeClass of the progress meter dialog. Then when the progress meter is no longer needed I call the dialog's EndDialog function and then call WaitForSingleObject to wait until the thread is terminated.
All well and good...It works just fine under Win98.
It doesn't work under Win2K
It seems that under NT in order to use WaitForSingleObject, the SYNCHRONIZE permission has to be set...which is also accomplished by setting PROCESS_ALL_ACCESS permissions.
Finally, my question. How do you set the SYNCHRONIZE or PROCESS_ALL_ACCESS permissions for the process in a MFC MDI app?
Gary Kirkham
A working Program is one that has only unobserved bugs
|
|
|
|
|
I strongly doubt that your problem has to do with events permissions. More likely it stems from the fact that you're calling EndDialog in a strange fashion (maybe directly from the main thread). The proper way to close the dialog is by sending a WM_CLOSE message: try this, maybe your problem goes away.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|