|
Hi All,
I am using VS 2005, i am getting following errors while building the
application.
1. error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
2. warning C4183: 'Open': missing return type; assumed to be a member
function returning 'int'
// the code written is as follows
/*public:
static BOOL Init();
Open(LPCTSTR pFilename); // open an AVI file
Close(); // close AVI File
Play(DWORD dwFlags, int nFirst = 0, int nLast = -1,
int nRepeatDelay = 0);*/
Please Help
Thanks in advance....
Suhi
|
|
|
|
|
It's standard procedure to define the return values for a function.
Your:
Open(LPCTSTR pFilename); // open an AVI file
could/should be:
int Open(LPCTSTR pFilename);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<a href="http://www.soonr.com">SoonR Inc -- PC Power delivered to your phone</a>
|
|
|
|
|
Thanks Peter,
But i am getting still the following errors for my code :
1. error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
2. warning C4183: 'Close': missing return type; assumed to be a member
function returning 'int'
public:
static BOOL Init();
int Open(LPCTSTR pFilename); // open an AVI file
Close(); [i am getting error no 1. at this // close AVI file
line]
int Play(DWORD dwFlags, int nFirst = 0, int nLast = -1, int nRepeatDelay = 0);
Please help for this as i am really new to this type of errors.
thnx in advance
rgds
Suhi
|
|
|
|
|
uhh, well "Close" needs this too.
You've got to be new to C++.... not just this type of error.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<a href="http://www.soonr.com">SoonR Inc -- PC Power delivered to your phone</a>
|
|
|
|
|
Thanks a lot Peter.
I hope u support me still i become perfect in C++ and VC++ concepts.
If you dnt mind i have 1 more query for u.Please help.
When i build the program i got 1 more error as follow.
Though the file 'mrcext4d.lib' is available in project directory
i am facing this problem please help.
The code was written in previous version and now i am using Visual
Studio 2005. Is this the problem? If yes please give me the solution.
LINK : fatal error LNK1104: cannot open file 'mrcext4d.lib'
THNX
Suhi
|
|
|
|
|
suhi wrote: LINK : fatal error LNK1104: cannot open file 'mrcext4d.lib'
See here.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
suhi wrote: 1. error C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
See here.
suhi wrote: 2. warning C4183: 'Open': missing return type; assumed to be a member
function returning 'int'
See here.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Hi,
How can I start my application at System Restart and System Shutdown?
|
|
|
|
|
Why do you need to do this?
Anyway, you could have app A configured to start on boot and have it create a hidden window which hangs around waiting for WM_ENDSESSION [^] to arrive and then starts process B when "lParam" is zero for that message.
Be aware that starting a process during shutdown is typically tricky and may even be prevented by the OS. You could, alternatively do your stuff in the WM_ENDSESSION handler of process A itself.
--
gleat
http://blogorama.nerdworks.in[ ^]
-- Once we figured out that taking our shoes and socks off would double our counting ability the technical glitch was quickly rectified. -- Chris Maunder, from the CP newsletter
|
|
|
|
|
hi...
how to run our application in windows services?
can anyone help me?
thanks.
paulraj
|
|
|
|
|
|
I have to create windows services...
paulraj
|
|
|
|
|
|
A():names(2){}
What's that for? When using vector, you don't declare the size. It's a dynamic sizing array...
Anyhow, it would be helpful for you to explain what differences you see.
(And who the heck gave me a 1 vote?)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<a href="http://www.soonr.com">SoonR Inc -- PC Power delivered to your phone</a>
|
|
|
|
|
There is a constructor that will create a vector with N elements. Apparently it doesn't "construct" each element in the traditional sense though.
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
Peter Weyzen wrote: When using vector, you don't declare the size.
Yes, you can. See here[^] (search for "vector(size_type n)".)
Steve
|
|
|
|
|
|
There is no problem! See here[^].
Steve
|
|
|
|
|
Best I can tell from MSDN the constructor is calling uninitialized_fill_n a few levels down.
The remarks in MSDN say: This algorithm allows the decoupling of memory allocation from object construction.
Could be there way of saying it does a deep copy of one instance of an object and replicates it N times, which would explain the behavior your experiencing.
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
|
See Stephen's response below. Basically your object is created once, then copied multiple times. Seems like kind of odd behavior to me....
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
That's an interesting question! See if this code helps answer it.
#include <iostream>
#include <vector>
#include <stdlib.h>
using namespace std;
class Foo {
private:
int num;
public:
Foo() {
num = rand();
cout<<"Foo::Foo() - num = "<<num<<endl;
}
explicit Foo(const Foo& f) {
num = f.num;
cout<<"Foo::Foo(const Foo&) - num = "<<num<<endl;
}
const Foo& operator=(const Foo& f) {
cout<<"Foo::operator=()"<<endl;
num = f.num;
return *this;
}
int getnum() {
return num;
}
};
int main() {
vector<Foo> v(5);
cout<<"size = "<<v.size()<<endl;
cout<<"capacity = "<<v.capacity()<<endl;
vector<Foo>::iterator it = v.begin();
while( it != v.end() )
cout<<(*it++).getnum()<<endl;
return 0;
} This is the output I get on VC++ 2008:
Foo::Foo() - num = 41
Foo::Foo(const Foo&) - num = 41
Foo::Foo(const Foo&) - num = 41
Foo::Foo(const Foo&) - num = 41
Foo::Foo(const Foo&) - num = 41
Foo::Foo(const Foo&) - num = 41
size = 5
capacity = 5
41
41
41
41
41 As you can see, the copy constructor gets called 5 times! So the compiler first creates a temporary "Foo" instance and then copies it 5 times.
--
gleat
http://blogorama.nerdworks.in[ ^]
-- Once we figured out that taking our shoes and socks off would double our counting ability the technical glitch was quickly rectified. -- Chris Maunder, from the CP newsletter
|
|
|
|
|
There is no bug, you just aren't logging enough! Try this code:
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
class Log
{
public:
Log()
{
cout << "Log()" << endl;
}
Log(const Log ©_me)
{
cout << "Log(const Log ©_me)" << endl;
}
~Log() { cout << "~Log()" << endl; }
};
int main()
{
vector<Log> g_Log(10);
return 0;
}
The output is:
Log()
Log(const Log ©_me)
Log(const Log ©_me)
Log(const Log ©_me)
Log(const Log ©_me)
Log(const Log ©_me)
Log(const Log ©_me)
Log(const Log ©_me)
Log(const Log ©_me)
Log(const Log ©_me)
Log(const Log ©_me)
~Log()
~Log()
~Log()
~Log()
~Log()
~Log()
~Log()
~Log()
~Log()
~Log()
~Log()
Looks like a reference element is created using the default constructor and the copy constructor is used to construct the actual vector 's elements by copying the reference element.
Steve
modified on Thursday, April 3, 2008 12:23 AM
|
|
|
|
|
|
Your mistake was assuming that the default constructor is used to construct the vector 's contents. My example showed that the copy-constructor is used instead. As I said, there is no problem: your vector does contain 2 fully constructed elements, it's just that you didn't put any logging code in the copy-constructor.
Steve
|
|
|
|