webForumDet fria alternativet

Visual C++ nybörjarproblem

9 svar · 366 visningar · startad av Pellefant

PellefantMedlem sedan maj 20023 372 inlägg
#1

Hej!

Håller på att gå igenom "Lär dig Visual C++ på 21 dagar", har redan kört fast på dag 2. Har lagt till nedanstående kod, till den automatiskt genererade koden, till en övning(där man har en dialogruta), och efter det så får jag errors, innan gick det fint att kompilera, men nu när man lägger händelser till knapparna så blir det en hel del fel. :(

Jag har kommit till en punkt när man enligt boken ska kompilera, (och få 0 fel), har även läst till slutet av kapitlet om det skulle vara ngt övergripande som ska läggas till, men inte hittat något.

Detta har jag lagt till åp den plats i den färdiga koden, som boken anger att man ska göra.


BOOL CDay2Dlg::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here

///////////////////////
// MY CODE STARTS HERE
///////////////////////
// Put a default message in the message edit
m_strMessage = "Place a message here";
// Set all of the check boxes to checked
m_bShowMsg = TRUE;
m_bShowPgm = TRUE;
m_bEnableMsg = TRUE;
m_bEnablePgm = TRUE;
// Update the dialog with the values
UpdateData(FALSE);
///////////////////////
// MY CODE ENDS HERE
///////////////////////
	
return TRUE;  // return TRUE  unless you set the focus to a control
}

void CDay2Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}

void CDay2Dlg::OnExit()
{
//TODO: Add your control notification handler code here
///////////////////////
// MY CODE STARTS HERE
///////////////////////
// Exit the program
OnOK();
///////////////////////
// MY CODE ENDS HERE
///////////////////////
}

void CDay2Dlg::OnShwmsg()
{
// TODO: Add your control notification handler code here
///////////////////////
// MY CODE STARTS HERE
///////////////////////
// Update the message variable with what the user entered
UpdateData(TRUE);
// Display the message for the user
MessageBox(m_strMessage);
///////////////////////
// MY CODE ENDS HERE
///////////////////////
}

Errors:

--------------------Configuration: Day2 - Win32 Debug--------------------
Compiling...
Day2Dlg.cpp
D:\Program\Microsoft Visual Studio\MyProjects\Day2\Day2Dlg.cpp(132) : error C2601: 'OnInitDialog' : local function definitions are illegal

D:\Program\Microsoft Visual Studio\MyProjects\Day2\Day2Dlg.cpp(158) : error C2601: 'OnSysCommand' : local function definitions are illegal

D:\Program\Microsoft Visual Studio\MyProjects\Day2\Day2Dlg.cpp(171) : error C2039: 'OnExit' : is not a member of 'CDay2Dlg'

d:\program\microsoft visual studio\myprojects\day2\day2dlg.h(14) : see declaration of 'CDay2Dlg'

D:\Program\Microsoft Visual Studio\MyProjects\Day2\Day2Dlg.cpp(172) : error C2601: 'OnExit' : local function definitions are illegal

D:\Program\Microsoft Visual Studio\MyProjects\Day2\Day2Dlg.cpp(187) : error C2039: 'OnShwmsg' : is not a member of 'CDay2Dlg'

d:\program\microsoft visual studio\myprojects\day2\day2dlg.h(14) : see declaration of 'CDay2Dlg'

D:\Program\Microsoft Visual Studio\MyProjects\Day2\Day2Dlg.cpp(188) : error C2601: 'OnShwmsg' : local function definitions are illegal

D:\Program\Microsoft Visual Studio\MyProjects\Day2\Day2Dlg.cpp(209) : error C2601: 'OnPaint' : local function definitions are illegal

D:\Program\Microsoft Visual Studio\MyProjects\Day2\Day2Dlg.cpp(236) : error C2601: 'OnQueryDragIcon' : local function definitions are illegal

D:\Program\Microsoft Visual Studio\MyProjects\Day2\Day2Dlg.cpp(239) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

UlfTMedlem sedan maj 20018 027 inlägg
#2

Hur ser filen "day2dlg.h" ut? Man skulle förvänta sig att du har deklarerat din klass där, inklusive prototyper till de metoder som klassen ska ha. Frågan är om du gjort det.

PellefantMedlem sedan maj 20023 372 inlägg
#3

Hej!

Tack för att du svarar. :)

Boken kanske inte är så bra ändå, det är att man ska klicka här och där, men förklarar inte alltid varför, samt att jag läste på amazon att den tydligen ska ha en del error i koden. :(

Såhär ser day2dlg.h ut:

// Day2Dlg.h : header file
//

#if !defined(AFX_DAY2DLG_H__72E17648_7539_4D30_9F07_48E20049687D__INCLUDED_)
#define AFX_DAY2DLG_H__72E17648_7539_4D30_9F07_48E20049687D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CDay2Dlg dialog

class CDay2Dlg : public CDialog
{
// Construction
public:
CDay2Dlg(CWnd* pParent = NULL); // standard constructor

// Dialog Data
//{{AFX_DATA(CDay2Dlg)
enum { IDD = IDD_DAY2_DIALOG };
CString m_strMessage;
CString m_StrProgToRun;
BOOL m_bEnableMsg;
BOOL m_bEnablePsg;
BOOL m_bShowMsg;
BOOL m_bShowPsg;
//}}AFX_DATA

// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDay2Dlg)
protected:
virtual void DoDataExchange(CDataExchange\* pDX);	// DDX/DDV support
//}}AFX_VIRTUAL

// Implementation
protected:
HICON m_hIcon;

// Generated message map functions
//{{AFX_MSG(CDay2Dlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()

};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_DAY2DLG_H__72E17648_7539_4D30_9F07_48E20049687D__INCLUDED_)

developerMedlem sedan aug. 2001458 inlägg
#4

Använd kod-tagen när du postar så blir koden läsligare. Titta här: http://www.webforum.nu/misc.php?s=&action=bbcode

BeatboxMedlem sedan okt. 20013 217 inlägg
#5

Är det ett MFC-workspace du försöker kompliera eller ?

PellefantMedlem sedan maj 20023 372 inlägg
#6

developer skrev:

Använd kod-tagen när du postar så blir koden läsligare. Titta här: http://www.webforum.nu/misc.php?s=&action=bbcode

Tack för rådet,har redigerat det nu. :)

PellefantMedlem sedan maj 20023 372 inlägg
#7

Beatbox skrev:

Är det ett MFC-workspace du försöker kompliera eller ?

Ja,det stämmer bra det, mitt första. :)

nikoMedlem sedan juni 20022 599 inlägg
#8

local function definitions are illegal betyder att kompilatorn tror att du försöker deklarera
en funktion inne i en annan funktion.

Vilket betyder att du nånstans i Day2Dlg.cpp antagligen glömt en avslutande "}". Bara att börja leta ..

BeatboxMedlem sedan okt. 20013 217 inlägg
#9

local function definitions are illegal betyder att kompilatorn tror att du försöker deklarera
en funktion inne i en annan funktion.

Eller att funktionshuvudet skiljer sig åt från implementationen....

nikoMedlem sedan juni 20022 599 inlägg
#10

Eller att funktionshuvudet skiljer sig åt från implementationen....

Jaha? Har du nåt exempel?

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)