 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Heinz Ozwirk Guest
|
Posted: Sun Dec 14, 2003 12:33 pm Post subject: Re: identifier |
|
|
"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
|
Posted: Sun Dec 14, 2003 2:14 pm Post subject: Re: identifier |
|
|
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
|
Posted: Sun Dec 14, 2003 3:19 pm Post subject: Re: identifier |
|
|
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
|
Posted: Sun Dec 14, 2003 5:14 pm Post subject: identifier |
|
|
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
|
Posted: Mon Dec 15, 2003 2:06 pm Post subject: Re: identifier |
|
|
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 |
|
 |
|
|
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
|
|