|
Deepu Antony wrote: ON_BN_CLICKED(BUTTON_ID, OnClick)
change it to
ON_BN_CLICKED(BUTTON_ID, &MyClass::OnClick)
Also, signature of the function should be like this
void FunctionName();
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Hi,
Still i am getting the same error.
|
|
|
|
|
the ambiguity is both CWnd and COleDropTarget are derived from CCmdTarget. Due to non-virtual inheritance, there will be multipe occurances of AFX_PMSG. Actually why do you inherit a window class from COleDropTarget? Refer COleDropTarget documentation to see its usage.
|
|
|
|
|
Hi!
i define two structs in .h file:
struct s1
{
CString str;
struct s2* ss2;
};
struct s2
{
int i;
CString name;
};
and in .cpp file, in a function i use of this structs:
s1 myS;
myS.str = "";
myS.ss2->i = 0;
please help me, how do i solve this error?
Zo.Naderi-Iran
|
|
|
|
|
Put struct s2 before struct s1,
struct s2
{
int i;
CString name;
};
struct s1
{
CString str;
struct s2* ss2;
};
|
|
|
|
|
«_Superman_» wrote: Put struct s2 before struct s1,
This won't make any difference.
Software rusts. Simon Stephenson, ca 1994.
|
|
|
|
|
Peter_in_2780 wrote: This won't make any difference.
Try it.
It's time for a new signature.
|
|
|
|
|
Richard MacCutchan wrote: Try it.
#include <iostream.h>
struct a {
int aa;
struct b *pb;
};
struct b {
int bb;
struct a *pa;
};
#pragma argsused
int main(int argc, char* argv[])
{
struct a *xa = new struct a;
struct b *xb = new struct b;
xa->pb = xb;
xa->pb->bb = 5;
cout << xb->bb;
return 0;
}
compiles and runs in my world. OK, so I'm not (M$) politically correct - I'm currently using Borland Turbo C++. I vaguely remember K&R or Stroustrup talking about this kind of forward reference - a pointer is as big as a pointer, regardless of what it points to, so all the compiler has to do is accept the implicit declaration.
btw, I don't want to get into a flame war about standards and compliance.
[edit][rant]However, I do think the 1-votes are unwarranted. Note that the OP's problem was *never* with the struct definitions, but turned out to be a typo in later reference. Two of you jumped down my throat. Personally, I don't give a flying, but the youngsters watching this might get the wrong impression.[/rant][/edit]
Software rusts. Simon Stephenson, ca 1994.
modified on Tuesday, July 27, 2010 12:39 AM
|
|
|
|
|
Well I did not jump down your throat, nor did I 1-vote you. I merely challenged your assertion that changing the order of the declarations would not make any difference.
I do agree with you that we don't want to start a flame war with this.
It's time for a new signature.
|
|
|
|
|
SuperMan is right, there are two way to solve above problem apart from actual problem (Struct Name mismatch) .
1. As Mentioned by Superman
2. Forward Declaration ! like this
struct s2;
struct s1
{
CString str;
struct s2* ss2;
};
struct s2
{
int i;
CString name;
};
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
ohhhhhhhh, my problem was solved;
the problem is in struct name. the struct name was incorrect in my code.
struct s1
{
CString str;
struct z2* ss2;
};
struct s2
{
int i;
CString name;
};
and the error was : error C2027: use of undefined type z2
when i Write in code project, this code, i Pay attention this problem.
thank you and excuse me,
Zo.Naderi-Iran
|
|
|
|
|
hi all
i want to export some data to excel and using excel tools within my MFC program. (like draw border and etc)
is there any guide for this?
thanks
|
|
|
|
|
|
Hi,
I have created a TabControl in my VC++ project in VS2003 IDE. I would like to switch the tabs with the help of hotkeys (eg:Alt+A).
Suppose i have two tabs with the titles &General ,&About. So I am expecting Alt+G should switch General tab and Alt+A should switch to About tab. But that is not happening. Do i need to set some thing else?
Thanks in advance...
Birajendu
SonicWALL
Bangalore
India
|
|
|
|
|
Hi, I am developing a document/view program with MFC Ribbon Features, I want to disable the close button of some of DockablePanes so that the user could not close them. I use the following code But It didnot work what should I do?
CMenu* pm = m_wndObjectProperties.GetSystemMenu(FALSE);
if(pm!= NULL)
{
pm->DeleteMenu(1, MF_BYPOSITION);
pm->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND | MF_DISABLED);
pm->DeleteMenu(SC_CLOSE, MF_BYCOMMAND);
}
|
|
|
|
|
hello guys....im new to this. I have a mic attached to my PC. Now following code should show appropriate message but it does't.
const int NUMPTS = 8000 * 10;
int sampleRate = 8000;
short int waveIn[NUMPTS];
HWAVEIN hWaveIn;
WAVEHDR WaveInHdr;
MMRESULT result = 0;
void CALLBACK waveInProc(HWAVEIN hwi,UINT msg, DWORD dwInstance, DWORD dwArg1, DWORD dwArg2) {
switch(msg) {
case WIM_OPEN:
MessageBox(NULL,"Device Opened Successfuly","Device Opened",NULL);
break;
case WIM_DATA:
MessageBox(NULL,"Data Recieving","data",NULL);
break;
case WIM_CLOSE:
MessageBox(NULL,"Device Closed Successfuly","Device Closed",NULL);
break;
default:
break;
}
}
void CwaveFileDlg::OnOpenDev()
{
CFile file;
CFileException cfe;
TCHAR* filename = "d:\\file.wav";
WAVEFORMATEX pFormat;
if (!file.Open(filename,CFile::modeCreate|CFile::modeReadWrite,&cfe))
MessageBox("File could't be opened","",cfe.m_cause);
result = waveInOpen(&hWaveIn,WAVE_MAPPER,&pFormat,(DWORD_PTR) waveInProc,(DWORD_PTR) this,(DWORD)WAVE_FORMAT_DIRECT);
}
what can be the reason??
|
|
|
|
|
I suggest you improve the observability by adding:
- a MessageBox showing the result of waveInOpen()
- a MessageBox showing the value of msg in your switch default.
Chances are that will tell you what is really going on.
|
|
|
|
|
1) I had a MessageBox for waveInOpen for both cases (true and false against MMSYSERR_NOERROR) but removed them for making it look less complicated. swicth default message can be added but only if goes in the switch (specifically....waveInProc), but there is an error b4 that. When I debug, it shows 32 against the MMRESULT variable (result).
|
|
|
|
|
if you have an error number or message, you should take it from there.
32 probably is WAVERR_BADFORMAT, so your data is bad.
|
|
|
|
|
well im new to this, and this is getting me little confused. I am not using any data, it is just the mic attached to PC (input device), so which data is bad??
|
|
|
|
|
The line I suspect most is:
WAVEFORMATEX pFormat;
Why would the values be correct (and why do you remove debug statements) while the lot isn't working yet?
I'm not familiar with all this, but from what I see, you either didn't read the documentation or made some mistake. You have two choices: locate the problem yourself, or accurately provide actual code and symptoms.
|
|
|
|
|
There is nothing to hide...following are the lines after the suspected line
pFormat.wFormatTag = WAVE_FORMAT_PCM;
pFormat.nChannels = 1;
pFormat.nSamplesPerSec = 8000;
pFormat.nAvgBytesPerSec = 16000;
pFormat.nBlockAlign = 1;
pFormat.wBitsPerSample = 16;
pFormat.cbSize = 0;
I wanna make it clear that it is logical error (that audio input device is't opening), not the syntax error (if I have made things complicated).
|
|
|
|
|
I don't think your values satisfy the documented requirements:
nBlockAlign (not OK)
Block alignment, in bytes. The block alignment is the minimum atomic unit of data for the wFormatTag format type. If wFormatTag is WAVE_FORMAT_PCM, nBlockAlign should be equal to the product of nChannels and wBitsPerSample divided by 8 (bits per byte).
nAvgBytesPerSec (OK)
Required average data-transfer rate, in bytes per second, for the format tag. If wFormatTag is WAVE_FORMAT_PCM, nAvgBytesPerSec should be equal to the product of nSamplesPerSec and nBlockAlign.
|
|
|
|
|
thanx....thanx alot. I hope I"ll b able to do something better now, while discussing this, I tried all the error options returned by waveInOpen and it was WAVERR_BADFORMAT. lets hope kim clijster wins the US Open once again...
|
|
|
|
|
My app crashed, I did find probrlm point.
to simplify code, I add a line inside crashed function for testing:
BYTE*pp=new BYTE[iSize];
iSize is an int,
if iSize is 1016, the line is OK.
if iSize is 1017, the line crashes, that is, the pointer can't be allocated, or pp is NULL.
My PC has 2G memory, so memory should be OK.
Do you know why?
virus? VC problem? Project settings?
|
|
|
|