|
|
I have created a property sheet with three property pages.
and i created a FormView?.How do i include a propert sheet into in a formview?
|
|
|
|
|
|
Hello hello,
does somebody know how to get the duration of a mpeg2 file ?
I am looking for hours on internet, there is no way to find out !
Please help, if you can ! Have a nice day,
alain
There is no way to happiness, happiness is the way !
|
|
|
|
|
i want to create program server\client
that has two client and one server
i want these clients to send message to server to gather and the server should send message to client too
|
|
|
|
|
Thats pretty simple if you use CAsyncSocket or CSocket in MFC. They have all the functions you need. If you are a total newbie, then look up for the book Sams'Teach yourself VC++ in 21 days (easily available on net for download). One of the chapter has a sample program just as you described, plus you can learn the concepts too. It can work both as a client or a server and you get to chose the option. Run this application as a server first, then again for the two clients, run the same application twice as client, I guess that should work pretty fine.
long live the dEvIL
|
|
|
|
|
|
|
Hello Friends,
In the program given, the destructor is called Explicitly
#include <iostream.h>
class A
{
public :
A()
{
cout <<"Class A:Constructor()" << endl;
}
virtual void show()
{
cout <<"in the base class" << endl;
}
~A()
{
cout <<"Class A:Destructor()" << endl;
}
};
class B : public A
{
public:
B()
{
cout <<"Class B:Constructor()" << endl;
}
void show()
{
cout <<"in the derived class" << endl;
}
~B()
{
cout <<"Class B:Destructor()" << endl;
}
};
int main(void)
{
B obj;
A obj2;
obj.~B();
obj2.~A();
return 0;
}
The program shows the destructor of the base and derived class is called two times one "Explicitly" and
"Implicitly".?
My Question is , since in the program destructor is "Explicitly" but the program output shows the destructor is called "Explicitly" and "Implicitly".
The program is given below
"
Class B:Constructor()
Class A:Constructor()
Class B:Destructor()
Class A:Destructor()
Class A:Destructor()
Class A:Destructor()
Class B:Destructor()
Class A:Destructor()
Press any key to continue
".
This program is run in VC++ IDE.
Please help if you now why this happening.
Best Regards,
Phijo
|
|
|
|
|
first of all, i've tested your application and this is the output i got:
Class A:Constructor()
Class B:Constructor()
Class A:Constructor()
Class B:Destructor()
Class A:Destructor()
Class A:Destructor()
it makes perfect sence and i shall explain by steps:
1. B obj - calls first A const. cause b inherites from A and then calls B const. therefor you get the
"Class A:Constructor()
Class B:Constructor()"
2. A obj2 - calls A const. therefor you get the
"Class A:Constructor()"
3. obj.~B(); - calls B dest. and then call A dest. (the parent) therefor you get the
"Class B:Destructor()
Class A:Destructor()"
4. obj2.~A() - calls A dest.therefor you get the
"Class A:Destructor()"
and that's that
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
you should make the destructor virtual in base class.
class A
{
public:
A() {};
virtual ~A() {};
};
class B : public A
{
public:
B() {};
virtual ~B() {};
};
The destructor should not be called directly.
It is called by C++ when the object looses scope:
int main ()
{
{
A localA;
} // ~A is called by C++ , because localA looses scope
}
A very good book about this topic is Effective C++ from Scott Meyers.
Regards,
Ralf
|
|
|
|
|
phijophlip wrote:
int main(void)
{
B obj;
A obj2;
obj.~B();
obj2.~A();
return 0;
}
Don't call the destructor explicitly! That's why it's being called twice! The destructor is being called once by you and once by the compiler when the main function is called.
|
|
|
|
|
I am witting an activeX control to display jpg image. I am using GDI+ to load and display the Image . It Works fine.
But When i closed the ActiveX test container,the window is closed but TSTCON32.EXE is running. i saw it in TaskManeger.
When i used that ActiveX Control in (web) html, it works fine. But iexplorer.exe is running.
When i used it in someother vc++ dialog based programs same thing happens.
What is the problem ? please anyone help me.
|
|
|
|
|
When I compile the program I get;
Release/Extractor.pch' is not a precompiled header file created with this compiler.
What is that? and what can I do to make it work again?
|
|
|
|
|
|
I have done that but I still get the same error message.
Do you have any more ide'es?
|
|
|
|
|
http://support.microsoft.com
|
|
|
|
|
http://support.microsoft.com/kb/194615/EN-US/
|
|
|
|
|
|
I Have done that but is still don'r work,
And it mark this file in the top of the file.
#include "stdafx.h"
|
|
|
|
|
hie friends,
please consider following MI example.
class Base1
{
public:
virtual void func1(void)
{
}
};
class Base2
{
public:
virtual void func2(void)
{
}
};
class Derived : public Base1,public Base2
{
public:
virtual void func3(void)
{
}
};
Here C++ Books says that here derived object will contain 2 vptrs pointing to 2 vtables.My question is why two vtables instead of one?
|
|
|
|
|
In your example I don't think two vtables are needed. Generally, you need two vtables if the derived class overrides the same function in more than one baseclass:
<br />
class Base1<br />
{<br />
public<br />
virtual void func1(void);<br />
virtual void funcCommon(void);<br />
}<br />
<br />
class Base2<br />
{<br />
public<br />
virtual void func2(void);<br />
virtual void funcCommon(void);<br />
}<br />
<br />
class Derived : public Base1, public Base2<br />
{<br />
public<br />
virtual void func3(void);<br />
virtual void funcCommon(void);
}<br />
The reason for the two vtables is to make Derived act as both a Base1 and a Base2:
<br />
Base1* pB1;<br />
Base2* pB2;<br />
Derived d;<br />
pB1 = &d;<br />
pB1->funcCommon()
pB2 = &d;<br />
pB2->funcCommon()
See also the article "C+: under the hood" by Jan Gray in MSDN.
Cheers
Steen.
"To claim that computer games influence children is ridiculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|
|
It's quite simple to redirect console application output using unnamed pipe. The problem is that standard output stream uses buffer! Default buffer size is 4K, and output text won't be delivered until buffer is filled or program is closed.
I run application that spawns another process and should receive its output as soon as it's availible. This should be done WITHOUT smashing into child application code (so setvbuf(stdout, 0, _IOFBF, 2) or fflush()/_flushall() calls cannot be used).
So, does anyone know the way to set buffer size of another process' standard output stream?
|
|
|
|
|
Hi guys
I'm doing a Doc-View app and I want to chage the output default directory in the CFileDialog when I do an Save as..
There is a simple way to do this?
Thanks
Doc
|
|
|
|
|
set CFileDialog.m_ofn.lpstrInitialDir before calling CFileDialog::DoModal.
Cheers
Steen.
"To claim that computer games influence children is ridiculous. If Pacman had influenced children born in the 80'ies we would see a lot of youngsters running around in dark rooms eating pills while listening to monotonous music"
|
|
|
|