tutorials.de Buch-Aktion 02/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
22
ZUGRIFFE
1028
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    SiS-Shadowman SiS-Shadowman ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    16
    ich hab gerade ein c++ tut gelesen und wollte eine der ersten übungen machen, jedoch habe ich ein problem bei der initialisierung der variablen.
    ich kenne das nur as vb 6.0 wo ich ein private blub as int schreiben musste.
    aber wie is das bei c++? (ich verwende vc++)

    ich bräuchte z.b. m_iPrevY als integer sowie miPrevX als integer.

    wie geht das?

    danke schon im vorraus
     

  2. #2
    darko m. Tutorials.de Gastzugang
    Hilft dir das weiter

    #include "stdafx.h"

    int main()
    {
    int zahl;
    int zahl2 = 3;

    zahl = 4;

    printf("%i",zahl);
    printf("%i",zahl2);

    return 0;
    }
     

  3. #3
    SiS-Shadowman SiS-Shadowman ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    16
    ja nur irgendwie packt vc++ noch von haus aus 100 zeilen in den code, da finde ich kein int main
    muss ich das einfach bei dem laden des formulars reinschreiben? also bei onload?
     

  4. #4
    darko m. Tutorials.de Gastzugang
    printf ist nur für die ausgabe.. (man kann aber auch "cout" verwenden)
     

  5. #5
    darko m. Tutorials.de Gastzugang
    Kannst ja ein "Leeres Projekt" erstellen.
    Dann musst du zusätzlich noch eine CPP Datei erstellen.
    Dafür ist die dan leer.
     

  6. #6
    SiS-Shadowman SiS-Shadowman ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    16
    jo, aba wo pack ich das int variable; hin?
    also ich arbeite nich mit nem eingabefenster, is ne dialog basierende anwendung...

    da sind halt am anfangen so classen deklarationen oder so (das zeugs versteh ich noch nich alles )
    ich find halt keinen teil wo ich die variablen hinpacken soll. wenn du willst poste ich mal den code (sind aba 200 zeilen , obwohl ich nur 20 geschrieben hab...)
     

  7. #7
    darko m. Tutorials.de Gastzugang
    Ja bitte... mal guggen was du meinst. :-D
     

  8. #8
    SiS-Shadowman SiS-Shadowman ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    16
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    
    // Tag3Dlg.cpp : implementation file
    //
     
    #include "stdafx.h"
    #include "Tag3.h"
    #include "Tag3Dlg.h"
     
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
     
    /////////////////////////////////////////////////////////////////////////////
    // CAboutDlg dialog used for App About
     
    class CAboutDlg : public CDialog
    {
    public:
        CAboutDlg();
     
    // Dialog Data
        //{{AFX_DATA(CAboutDlg)
        enum { IDD = IDD_ABOUTBOX };
        //}}AFX_DATA
     
        // ClassWizard generated virtual function overrides
        //{{AFX_VIRTUAL(CAboutDlg)
        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
        //}}AFX_VIRTUAL
     
    // Implementation
    protected:
        //{{AFX_MSG(CAboutDlg)
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
    };
     
    CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
    {
        //{{AFX_DATA_INIT(CAboutDlg)
        //}}AFX_DATA_INIT
    }
     
    void CAboutDlg::DoDataExchange(CDataExchange* pDX)
    {
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CAboutDlg)
        //}}AFX_DATA_MAP
    }
     
    BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
        //{{AFX_MSG_MAP(CAboutDlg)
            // No message handlers
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
     
    /////////////////////////////////////////////////////////////////////////////
    // CTag3Dlg dialog
     
    CTag3Dlg::CTag3Dlg(CWnd* pParent /*=NULL*/)
        : CDialog(CTag3Dlg::IDD, pParent)
    {
        //{{AFX_DATA_INIT(CTag3Dlg)
            // NOTE: the ClassWizard will add member initialization here
        //}}AFX_DATA_INIT
        // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    }
     
    void CTag3Dlg::DoDataExchange(CDataExchange* pDX)
    {
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CTag3Dlg)
            // NOTE: the ClassWizard will add DDX and DDV calls here
        //}}AFX_DATA_MAP
    }
     
    BEGIN_MESSAGE_MAP(CTag3Dlg, CDialog)
        //{{AFX_MSG_MAP(CTag3Dlg)
        ON_WM_SYSCOMMAND()
        ON_WM_PAINT()
        ON_WM_QUERYDRAGICON()
        ON_WM_MOUSEMOVE()
        ON_WM_LBUTTONDOWN()
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
     
    /////////////////////////////////////////////////////////////////////////////
    // CTag3Dlg message handlers
     
    BOOL CTag3Dlg::OnInitDialog()
    {
        CDialog::OnInitDialog();
     
        // Add "About..." menu item to system menu.
     
        // IDM_ABOUTBOX must be in the system command range.
        ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
        ASSERT(IDM_ABOUTBOX < 0xF000);
     
        CMenu* pSysMenu = GetSystemMenu(FALSE);
        if (pSysMenu != NULL)
        {
            CString strAboutMenu;
            strAboutMenu.LoadString(IDS_ABOUTBOX);
            if (!strAboutMenu.IsEmpty())
            {
                pSysMenu->AppendMenu(MF_SEPARATOR);
                pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
            }
        }
     
        // Set the icon for this dialog.  The framework does this automatically
        //  when the application's main window is not a dialog
        SetIcon(m_hIcon, TRUE);         // Set big icon
        SetIcon(m_hIcon, FALSE);        // Set small icon
        
        // TODO: Add extra initialization here
        
        return TRUE;  // return TRUE  unless you set the focus to a control
    }
     
    void CTag3Dlg::OnSysCommand(UINT nID, LPARAM lParam)
    {
        if ((nID & 0xFFF0) == IDM_ABOUTBOX)
        {
            CAboutDlg dlgAbout;
            dlgAbout.DoModal();
        }
        else
        {
            CDialog::OnSysCommand(nID, lParam);
        }
    }
     
    // If you add a minimize button to your dialog, you will need the code below
    //  to draw the icon.  For MFC applications using the document/view model,
    //  this is automatically done for you by the framework.
     
    void CTag3Dlg::OnPaint() 
    {
        if (IsIconic())
        {
            CPaintDC dc(this); // device context for painting
     
            SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
     
            // Center icon in client rectangle
            int cxIcon = GetSystemMetrics(SM_CXICON);
            int cyIcon = GetSystemMetrics(SM_CYICON);
            CRect rect;
            GetClientRect(&rect);
            int x = (rect.Width() - cxIcon + 1) / 2;
            int y = (rect.Height() - cyIcon + 1) / 2;
     
            // Draw the iconw
            dc.DrawIcon(x, y, m_hIcon);
        }
        else
        {
            CDialog::OnPaint();
        }
    }
     
    // The system calls this to obtain the cursor to display while the user drags
    //  the minimized window.
    HCURSOR CTag3Dlg::OnQueryDragIcon()
    {
        return (HCURSOR) m_hIcon;
    }
     
    void CTag3Dlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
        if ((nFlags & MK_LBUTTON) == MK_LBUTTON) {
            CClientDC dc(this);
            
            dc.MoveTo(m_iPrevX, m_iPrevY);
            dc.LineTo(point.x, point.y);
     
            m_iPrevX = point.x;
            m_iPrevY = point.y;
        }
        
        CDialog::OnMouseMove(nFlags, point);
    }
     
     
    void CTag3Dlg::OnLButtonDown(UINT nFlags, CPoint point) 
    {
        m_iPrevX = point.x;
        m_iPrevY = point.y;
     
        CDialog::OnLButtonDown(nFlags, point);
    }
    Also das is mal der Code wo ich die befehle für die buttons reinschreibe...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    
    // Tag3Dlg.h : header file
    //
     
    #if !defined(AFX_TAG3DLG_H__54A791DC_D6C7_4106_8929_E8EBF57F4618__INCLUDED_)
    #define AFX_TAG3DLG_H__54A791DC_D6C7_4106_8929_E8EBF57F4618__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    /////////////////////////////////////////////////////////////////////////////
    // CTag3Dlg dialog
     
    class CTag3Dlg : public CDialog
    {
    // Construction
    public:
        CTag3Dlg(CWnd* pParent = NULL); // standard constructor
     
    // Dialog Data
        //{{AFX_DATA(CTag3Dlg)
        enum { IDD = IDD_TAG3_DIALOG };
            // NOTE: the ClassWizard will add data members here
        //}}AFX_DATA
     
        // ClassWizard generated virtual function overrides
        //{{AFX_VIRTUAL(CTag3Dlg)
        protected:
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
        //}}AFX_VIRTUAL
     
    // Implementation
    protected:
        HICON m_hIcon;
     
        // Generated message map functions
        //{{AFX_MSG(CTag3Dlg)
        virtual BOOL OnInitDialog();
        afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
        afx_msg void OnPaint();
        afx_msg HCURSOR OnQueryDragIcon();
        afx_msg void OnMouseMove(UINT nFlags, CPoint point);
        afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
    private:
        int m_iPrevX();
        int m_iPrevY();
    };
     
    //{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
     
    #endif // !defined(AFX_TAG3DLG_H__54A791DC_D6C7_4106_8929_E8EBF57F4618__INCLUDED_)

    Das hier ist die "klassendefinition"
    dort finde ich ich auch schon das int m_iPrevX(); usw.. aber ich krieg beim compilieren trotzdem fehler wenn ich diese variablen im code verwende...
     

  9. #9
    darko m. Tutorials.de Gastzugang
    Hm... tut mir leid..
    Noch nie gesehen.. was für ein Projekt hasst du erstellt?

    Ich arbeite fast nur mit API.
     

  10. #10
    SiS-Shadowman SiS-Shadowman ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    16
    ich arbeite mit dem MFC App Wizard, der erstellt mir halt am anfang so nen schönen dialog, oder gleich die rohdaten für ein windows programm, is für die nicht api beherscher *g

    und wegen dem fehler, das kommt immer beim compilieren:

    rror C2664: 'class CPoint __thiscall CDC::MoveTo(int,int)' : cannot convert parameter 1 from 'int (void)' to 'int'
    Conversion is a valid standard conversion, which can be performed implicitly or by use of static_cast, C-style cast or function-style cast

    kann aber leider nix damit anfangen :-/
     

  11. #11
    Flegmon Flegmon ist offline Mitglied Brokat
    Registriert seit
    Aug 2004
    Beiträge
    351
    Hallo,

    schreibe anstelle von:

    Zitat Zitat von SiS-Shadowman
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
     
     
    void CTag3Dlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
        if ((nFlags & MK_LBUTTON) == MK_LBUTTON) {
            CClientDC dc(this);
            
            dc.MoveTo(m_iPrevX, m_iPrevY);
            dc.LineTo(point.x, point.y);
     
            m_iPrevX = point.x;
            m_iPrevY = point.y;
        }
        
        CDialog::OnMouseMove(nFlags, point);
    }
    das:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
     
    void CTag3Dlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
        if ((nFlags & MK_LBUTTON) == MK_LBUTTON) {
            CClientDC dc(this);
            
            dc.MoveTo([COLOR=Red](int)[/COLOR]m_iPrevX, [COLOR=Red](int)[/COLOR]m_iPrevY);
            dc.LineTo(point.x, point.y);
     
            m_iPrevX = point.x;
            m_iPrevY = point.y;
        }
        
        CDialog::OnMouseMove(nFlags, point);
    }
     

  12. #12
    SiS-Shadowman SiS-Shadowman ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    16
    Nun kommt diese fehlermeldung :

    E:\Programme\Microsoft Visual Studio\MyProjects\Tag3\Tag3Dlg.cpp(179) : error C2440: 'type cast' : cannot convert from 'int (__thiscall CTag3Dlg::*)(void)' to 'int'
    Conversion is a valid standard conversion, which can be performed implicitly or by use of static_cast, C-style cast or function-style cast
    E:\Programme\Microsoft Visual Studio\MyProjects\Tag3\Tag3Dlg.cpp(179) : error C2440: 'type cast' : cannot convert from 'int (__thiscall CTag3Dlg::*)(void)' to 'int'
    Conversion is a valid standard conversion, which can be performed implicitly or by use of static_cast, C-style cast or function-style cast

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    void CTag3Dlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
        if ((nFlags & MK_LBUTTON) == MK_LBUTTON) {
            CClientDC dc(this);
     
            dc.MoveTo((int)m_iPrevX, (int)m_iPrevY);
            dc.LineTo(point.x, point.y);
     
            m_iPrevX = point.x;
            m_iPrevY = point.y;
        }
        
        CDialog::OnMouseMove(nFlags, point);
    }
     

  13. #13
    Flegmon Flegmon ist offline Mitglied Brokat
    Registriert seit
    Aug 2004
    Beiträge
    351
    In Dev-cpp funktionierts so. War einen Versuch wert.

    Versuchs mal mit einem static_cast Operator ( wird so in der Fehlerbeschreibung vorgeschlagen )
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     MSDN:
     
    static_cast Operator
     
    static_cast < type-id > ( expression )
     
    The static_cast operator converts expression to the type of type-id based solely on the types present in the expression. No run-time type check is made to ensure the safety of the conversion.
     
    The static_cast operator can be used for operations such as converting a pointer to a base class to a pointer to a derived class. Such conversions are not always safe.

    static_cast<int>(variable)
    Geändert von Flegmon (14.04.05 um 22:05 Uhr)
     

  14. #14
    SiS-Shadowman SiS-Shadowman ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    16
    jo, trotzdem danke für den versuch
     

  15. #15
    Flegmon Flegmon ist offline Mitglied Brokat
    Registriert seit
    Aug 2004
    Beiträge
    351
    Zitat Zitat von SiS-Shadowman
    Conversion is a valid standard conversion, which can be performed implicitly or by use of static_cast, C-style cast or function-style cast

    Code :
    1
    
            dc.MoveTo((int)m_iPrevX, (int)m_iPrevY);
    Bin mir nicht sicher. Es müsste dann so aussehen :
    Code :
    1
    
    dc.MoveTo(static_cast<int>(m_iPrevX),static_cast<int>(m_iPrevY));
     

Ähnliche Themen

  1. Problem mit Deklaration von Variablen
    Von Samson22k im Forum C/C++
    Antworten: 12
    Letzter Beitrag: 24.10.09, 19:58
  2. Variablen Deklaration...
    Von SonMiko im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 23.03.06, 17:09
  3. Deklaration von variablen
    Von SiS-Shadowman im Forum VisualStudio & MFC
    Antworten: 9
    Letzter Beitrag: 14.04.05, 23:45
  4. Externe Variablen Deklaration
    Von Matthias_J im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 21.02.05, 08:39
  5. Variablen deklaration.
    Von EM-Autotechnik im Forum PHP
    Antworten: 2
    Letzter Beitrag: 08.09.03, 20:23