|
parichaybp
well,
-------------In Main File CssDlg-------------------------
#include "test2.h"
....
private:
class CTest2;
//Then declare a pointer:
CTest2 *m_dlg;
---------------------------
void CssDlg::OnBnClickedButton3()
{
m_dlg.DoModal();
}
d:\Projects\ss\ssDlg.cpp(418): error C2228: left of '.DoModal' must have class/struct/union type
then I use
void CssDlg::OnBnClickedButton3()
{
m_dlg->DoModal();
}
d:\Projects\ss\ssDlg.cpp(418): error C2027: use of undefined type 'CssDlg::CTest2'
d:\Projects\ss\ssDlg.cpp(418): error C2227: left of '->DoModal' must point to class/struct/union
I find your problem delete
private:
class CTest2;//Then declare a pointer:
CTest2 *m_dlg;
--------------------------------------
and you should CTest2 m_dlg;
Now It's work
|
|
|
|
|
Hi whitesky,
its not working .. can u please have a look
private:
CStatusDlg m_dStatusDlg;
// class CCreateDlg;
//Then declare a pointer:
CCreateDlg m_dCreateDlg;
};
-----Error---
--------------------Configuration: DesktopSearch - Win32 Debug--------------------
Compiling...
CreateDlg.cpp
d:\parichay\desktopsearch\updatedlg.h(60) : error C2146: syntax error : missing ';' before identifier 'm_dCreateDlg'
d:\parichay\desktopsearch\updatedlg.h(60) : error C2501: 'CCreateDlg' : missing storage-class or type specifiers
d:\parichay\desktopsearch\updatedlg.h(60) : error C2501: 'm_dCreateDlg' : missing storage-class or type specifiers
DesktopSearch.cpp
d:\parichay\desktopsearch\updatedlg.h(60) : error C2146: syntax error : missing ';' before identifier 'm_dCreateDlg'
d:\parichay\desktopsearch\updatedlg.h(60) : error C2501: 'CCreateDlg' : missing storage-class or type specifiers
d:\parichay\desktopsearch\updatedlg.h(60) : error C2501: 'm_dCreateDlg' : missing storage-class or type specifiers
DesktopSearchDlg.cpp
d:\parichay\desktopsearch\updatedlg.h(60) : error C2146: syntax error : missing ';' before identifier 'm_dCreateDlg'
d:\parichay\desktopsearch\updatedlg.h(60) : error C2501: 'CCreateDlg' : missing storage-class or type specifiers
d:\parichay\desktopsearch\updatedlg.h(60) : error C2501: 'm_dCreateDlg' : missing storage-class or type specifiers
UpdateDlg.cpp
d:\parichay\desktopsearch\updatedlg.h(60) : error C2146: syntax error : missing ';' before identifier 'm_dCreateDlg'
d:\parichay\desktopsearch\updatedlg.h(60) : error C2501: 'CCreateDlg' : missing storage-class or type specifiers
d:\parichay\desktopsearch\updatedlg.h(60) : error C2501: 'm_dCreateDlg' : missing storage-class or type specifiers
D:\Parichay\DesktopSearch\UpdateDlg.cpp(181) : error C2065: 'm_dCreatelg' : undeclared identifier
D:\Parichay\DesktopSearch\UpdateDlg.cpp(181) : error C2227: left of '->DoModal' must point to class/struct/union
Generating Code...
Error executing cl.exe.
DesktopSearch.exe - 14 error(s), 0 warning(s)
|
|
|
|
|
Do you see MSDN for these errors?
it is some helpful to you
|
|
|
|
|
hi whitesky,
Problem is there are 2 Dialog window, in the UpdateDlg dialog when i click on new button it should open create dialog window...
please can u tell me what should be done and how the declaration shd be done ...
|
|
|
|
|
|
you are declaring the pointer in the CreateDlg file for the dialog
That should be done in UpdateDlg.h
that's all
Vision is Always important and so is your ATTITUDE.
Wishes.
Anshuman Dandekar
|
|
|
|
|
Hi,
I have a small problem when using enums with VC++. Although, I use enums a lot with C#, I am having problems using them in VC++. Let me explain.
I have the declaration in the header file:
class CContext <br />
{<br />
private:<br />
<br />
public: <br />
enum ContextType<br />
{<br />
Context1 = 0,<br />
Context2<br />
} ;<br />
<br />
CContextMenu() ;<br />
virtual ~CContextMenu() ;<br />
bool AddContextItems( ContextType cT ) ;<br />
};
Then I have the implementation in the cpp file:
bool AddContextItems( ContextType cT )<br />
{<br />
return true ;<br />
}
But on compilation, I get the error, ContextType undeclared identifier.
Also, when I click on the function AddContextItems in the Workspace explorer window, it says, Cannot find defination(Implementation) of this file. Can you tell me why this happens?
Thanks,
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
-- modified at 1:13 Tuesday 11th April, 2006
|
|
|
|
|
You hvn't given semi colon after(;) the class declaration.
just a guess!
|
|
|
|
|
Oh.. Its there... just forgot to add it...
My mistake...
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
bool CContext::AddContextItems( CContext::ContextType cT )
{
//Do something
return true ;
}
nave
|
|
|
|
|
Although it compiling fine now, I still get the cannot find declaration(implementation) of this file error.
Also, when I try to use the function from another class, I get the error,
error LNK2001: unresolved external symbol "public: bool __thiscall CContext::AddContextItems(enum CContext::ContextType)" (?AddContextItems@CContext@@QAE_NW4ContextType@1@@Z)
Can anyone help me decrypt this mumbo jumbo.... ?
I just can't figure out, what the error means?
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
the error comes beause there is no implementation for the function CContext::AddContextItems..
Plz check the cpp that the AddContextItems funtion is written as same as wrote below. I think u haven't noticed the item i have marked bold ..
bool CContext::AddContextItems( CContext::ContextType cT )
{
//Do something
return true ;
}
nave
-- modified at 1:37 Tuesday 11th April, 2006
|
|
|
|
|
Oops... my mistake..... Sorry....
Working perfectly now.... Thanks a lot...
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
Hi Dear,
Can try following
1.When you call AddContextItems ( ContextType cT ) method, make sure that you are passing correct data type?
2.Try by making enum declaration global.
|
|
|
|
|
Hi all,
I'd like have my MDI child as modal dialog. Is it possible by using RunModalLoop? If so, how can I achieve this?
If anyone could tell me how to use RunModalLoop, I'd be thankful.
Thanks in advance,
Sarvan AL
|
|
|
|
|
Sarvan AL wrote: I'd like have my MDI child as modal dialog. Is it possible by using RunModalLoop?
That's a very odd request. I'm not sure of the usefulness of such a feature, but anyway...
Look at the MFC source code for CDialog::DoModal() and implement something similar for your form. Yes, RunModalLoop() is involved. Obviously, CDialog::DoModal() does more than you require, such as loading the dialog resource, creating the dialog, returning the return value etc...
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Hi all
I have three queries regarding memory management:
1) As we know that if a variable is declered in a file (Let .c file) then we can access this variable from any other .c file by using "extern" key word...... Now Question is where this extern variable is stored in memory.
2) Is there any way to make this sure that if any variable is declared in some .c file then any other file can not access this variable.
3) where the variables are stored while execution of program (RAM, or Hard disk, or CPU Registers)..
I think problems would be clear.
Please reply.
Thanks in advance
|
|
|
|
|
rajeevktripathi wrote: Question is where this extern variable is stored in memory.
In the same place as any other variables...
rajeevktripathi wrote: Is there any way to make this sure that if any variable is declared in some .c file then any other file can not access this variable.
Yes, declare the variable as static
rajeevktripathi wrote: where the variables are stored while execution of program (RAM, or Hard disk, or CPU Registers)
Usually in RAM. They can be stored in registers depending on how the compiler does its optimisation.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Thanks for your solutions
Here answer of 1st question is not clear to me,
so please explore it a bit more
Thanks
|
|
|
|
|
Whether you place extern on a variable definition or not makes absolutely no difference to where it is stored in memory.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
|
This depends on the compiler which is used.
Everything I have read about this suggests that the Visual C++ compiler treats the REGISTER keyword with very low priority (i.e. it uses it as a suggestion, but does what it thinks is best.)
I was doing some code which I though would benefit from keeping some three 32-bit variables in registers, but the REGISTER keyword made no difference to the speed. Looking at the assembly code which was generated, the three variables were not put in registers.
|
|
|
|
|
normanS wrote: Everything I have read about this suggests that the Visual C++ compiler treats the REGISTER keyword with very low priority (i.e. it uses it as a suggestion, but does what it thinks is best.)
Actually, it's even lower. It ignores it completely, as do most compilers these days. Generally, the optimiser is a lot better at choosing which variables should be in registers than the programmer is.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
I saw that MSDN says:
"The compiler does not accept user requests for register variables; instead, it makes its own register choices when global register-allocation optimization (/Oe option) is on."
I wonder if MS compilers have ever done anything with the register keyword.
I'm sure I still have a Visual C++ 1.52c disk somewhere at home - maybe I should install that (Win 9x?) and see what assembler that generates.
|
|
|
|
|
normanS wrote: I'm sure I still have a Visual C++ 1.52c disk somewhere at home - maybe I should install that (Win 9x?) and see what assembler that generates.
I think you'll find that it honours the register variables sometimes, and sometimes does not. C/C++ optimisers were still not very advanced back in 1993
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|