C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

identifier

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Heinz Ozwirk
Guest





PostPosted: Sun Dec 14, 2003 12:33 pm    Post subject: Re: identifier Reply with quote



"Michael Sgier" <sgier (AT) dplanet (DOT) ch> schrieb im Newsbeitrag news:pan.2003.12.14.17.14.20.773138 (AT) dplanet (DOT) ch...
: Hallo ich habe den Fehler zuunterst.
:
: void CsecoApp::OnBnClickedOk()
: {
: int iInnerLoop, iOuterLoop;
: int iSum;
: for (iOuterLoop = 0; iOuterLoop < 5; iOuterLoop++)
: {
: for (iInnerLoop = 0; iInnerLoop < 3; iInnerLoop++)
: {
: iSum = CalculateSum(iInnerLoop, iOuterLoop);
: if (iSum == 6)
: MessageBox("Die Summe beträgt 6");
: }
: }
: }
:
:
: und in der Klasse:
:
: int CsecoDlg::CalculateSum(int iLeftValue, int iRightValue)
: {
: int iSum;
: iSum = iLeftValue - iRightValue;
: return iSum;
: }
:
:
:
: Visual Studio Projectssecoseco.cpp(85): error C3861: 'CalculateSum': identifier not found, even with argument-dependent lookup
: Visual Studio Projectssecoseco.cpp(87): error C2660: 'MessageBoxA' : function does not take 1 arguments


Unless CsecoDlg is a base class of CsecoApp, you cannot access CsecoDlg::CalculateSum without specifying an instance of CsecoDlg. Are you really sure that OnBnClickedOk should be a member of CsecoApp?

Heinz

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Peter Gertner
Guest





PostPosted: Sun Dec 14, 2003 2:14 pm    Post subject: Re: identifier Reply with quote



On Sun, 14 Dec 2003 18:14:22 +0100, Michael Sgier wrote:
Quote:
Visual Studio Projectssecoseco.cpp(85): error C3861: 'CalculateSum': identifier not found, even with argument-dependent lookup
Visual Studio Projectssecoseco.cpp(87): error C2660: 'MessageBoxA' : function does not take 1 arguments
So wie's aussieht findet das VS deine Methode nicht.

Ich weiß nicht genau, wie es bei C++ aussieht, aber normalerweise müssen
Methoden und Funktionen deklariert sein, bevor sie aufgerufen werden können
(weil der Parser von oben nach unten arbeitet).
Du kannst jetzt also entweder CsecoApp::CalculateSum() im Quelltext *vor*
CsecoApp::OnBnClickedOk() schreiben, oder brauchst sowas wie eine Forward
Declaration. Wie diese in C++ aussieht, weiß ich leider auch nicht (merkt
man, daß ich mich lange nicht mit C++ beschäftigt habe?), aber sowas sollte
in einem guten Buch oder in der Referenz zum VS stehen.
Wenn das auch nicht hilft, kann es sogar sein, daß man bei C++ explizit
this.CalculateSum() aufrufen muss, aber das sollte eigentlich nicht der
Fall sein, wenn mich mein Gedächtnis nicht vollends zum Narren hält.

Zum zweiten Fehler:
Laut PSDK ist MessageBox folgendermaßen deklariert:
int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
);
Jetzt zähl mal die Anzahl deiner Parameter, und die Anzahl der Parameter,
die Messagebox erwartet. Fällt dir was auf? Richtig! Es fehlen drei. Du
musst neben dem Text auch noch das Handle des Parent-Windows, die Caption
der Box und das Erscheinungsbild der Messagebox angeben. Weiter Infos im
PSDK oder im MSDN, Stichwort "MessageBox".

Bis später,
Peter
--
Beam me up, Scotty, there is no intelligent life on this planet!
- James Tiberius Kirk

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Marco Budde
Guest





PostPosted: Sun Dec 14, 2003 3:19 pm    Post subject: Re: identifier Reply with quote



Michael Sgier wrote:

Quote:
Visual Studio Projectssecoseco.cpp(85): error C3861: 'CalculateSum':
identifier not found, even with argument-dependent lookup

Hier sagt der Compiler doch, was ihm nicht gefällt. Er kennt die Methode
"CalculateSum" zu
dem Zeitpunkt, wo Du sie benutzt, noch nicht. Wie sieht Dein Header
Filer zu der Klasse
aus? Hast Du den mit include eingebunden?

Quote:
Visual Studio Projectssecoseco.cpp(87): error C2660: 'MessageBoxA' :
function does not take 1 arguments

Hast Du den passenden Header eingebunden? Ansonsten stimmt
halt die Anzahl der Parameter nicht, sagt er doch.
--
S: Minolta: Winkelsucher (VN), VC-9

E-Mail: mb-news-b<ät>linuxhaven.de
Deutsches Linux HOWTO Projekt: http://www.linuxhaven.de

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de

Back to top
Michael Sgier
Guest





PostPosted: Sun Dec 14, 2003 5:14 pm    Post subject: identifier Reply with quote

Hallo ich habe den Fehler zuunterst.

void CsecoApp::OnBnClickedOk()
{
int iInnerLoop, iOuterLoop;
int iSum;
for (iOuterLoop = 0; iOuterLoop < 5; iOuterLoop++)
{
for (iInnerLoop = 0; iInnerLoop < 3; iInnerLoop++)
{
iSum = CalculateSum(iInnerLoop, iOuterLoop);
if (iSum == 6)
MessageBox("Die Summe beträgt 6");
}
}
}


und in der Klasse:

int CsecoDlg::CalculateSum(int iLeftValue, int iRightValue)
{
int iSum;
iSum = iLeftValue - iRightValue;
return iSum;
}



Visual Studio Projectssecoseco.cpp(85): error C3861: 'CalculateSum': identifier not found, even with argument-dependent lookup
Visual Studio Projectssecoseco.cpp(87): error C2660: 'MessageBoxA' : function does not take 1 arguments

Kann mir da jemand weiterhelfen? Jau vielen Dank
Grüsse Michael
--
Esc:i
Linux User 183727 ( http://counter.li.org )
Log on at www.mame.dk for MAME Arkade Game Roms
:wq

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Peter Gertner
Guest





PostPosted: Mon Dec 15, 2003 2:06 pm    Post subject: Re: identifier Reply with quote

Oh, da hat einer ein ganz aufmerksames Auge (Thanks, Heinz). Mir ist gar
nicht aufgefallen, daß es zwei verschiedene Klassen sind.
Dann brauchst du tatsächlich vorher eine Instanz der Klasse wenn CsecoApp
nicht von CsecoDlg abstammt (den Klassennamen nach zu urteilen eher nicht
der Fall), bevor du irgendwie deren Methoden aufrufen kannst, oder du
solltest deine Klassenstruktur überdenken (ich weiß nicht, wie der Rest der
Klassen aussieht).

Bis später,
Peter
--
Beam me up, Scotty, there is no intelligent life on this planet!
- James Tiberius Kirk

--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.