Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. How i put a CArray as a parament in a function

How i put a CArray as a parament in a function

Scheduled Pinned Locked Moved C / C++ / MFC
16 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • I Immunity18

    Hello i have a function OnStart(){} and inside this function there is a CArray FArray that contains Filepathnames. i want to create a function that take as a parametr CArray (so i can execute it inside OnStart() ) I try to create but when i put FindDF(CArray nArray) it says me i cant put < >

    M Offline
    M Offline
    Mark Salsbery
    wrote on last edited by
    #4

    Since CArray is a template class, you need to declare your array type as such. You can either use something like this CArray or to shorten things up, use typedef to create an alias for the template class: typedef CArray CArrayMembersClassArray; and use "CArrayMembersClassArray" as a variable type. Mark "Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder

    I 1 Reply Last reply
    0
    • M Mark Salsbery

      Since CArray is a template class, you need to declare your array type as such. You can either use something like this CArray or to shorten things up, use typedef to create an alias for the template class: typedef CArray CArrayMembersClassArray; and use "CArrayMembersClassArray" as a variable type. Mark "Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder

      I Offline
      I Offline
      Immunity18
      wrote on last edited by
      #5

      i tried FindDF(CString file , CArray < CString, CString& > FArray) and when i press OK nothing happends (pressed it many times)

      M 1 Reply Last reply
      0
      • I Immunity18

        i tried FindDF(CString file , CArray < CString, CString& > FArray) and when i press OK nothing happends (pressed it many times)

        M Offline
        M Offline
        Mark Salsbery
        wrote on last edited by
        #6

        I'm sorry...what? :confused: What do you mean you "press ok"? Runtime? Design time? I'm lost :) Mark

        "Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder

        I 1 Reply Last reply
        0
        • M Mark Salsbery

          I'm sorry...what? :confused: What do you mean you "press ok"? Runtime? Design time? I'm lost :) Mark

          "Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder

          I Offline
          I Offline
          Immunity18
          wrote on last edited by
          #7

          hehehe sorry i let you alone inside forest:D Ok here i am to rescue u ! i use Microsoft Visual studio C++ 6.0 enviroment i press right click on the Class and press Add member function on the window it pop up i time Type: double Function declaration : Find(CString file , ....) and i have to press OK or cancel :D

          M 1 Reply Last reply
          0
          • I Immunity18

            hehehe sorry i let you alone inside forest:D Ok here i am to rescue u ! i use Microsoft Visual studio C++ 6.0 enviroment i press right click on the Class and press Add member function on the window it pop up i time Type: double Function declaration : Find(CString file , ....) and i have to press OK or cancel :D

            M Offline
            M Offline
            Mark Salsbery
            wrote on last edited by
            #8

            Ohhh ok :) I've never used the add function wizard but I just tried it on VS 2003 .NET. I chose "Add/Add function.." for a class. Selected a return type typed a function name for the parameter type, I typed "CArray<int, int&> &" parameter name I typed MyIntArray clicked the Add button to add the parameter clicked Finish and the function was added to my class I'm not sure how different that is from VC 6 (I bet David Crow knows :)) Mark

            "Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder

            I 1 Reply Last reply
            0
            • M Mark Salsbery

              Ohhh ok :) I've never used the add function wizard but I just tried it on VS 2003 .NET. I chose "Add/Add function.." for a class. Selected a return type typed a function name for the parameter type, I typed "CArray<int, int&> &" parameter name I typed MyIntArray clicked the Add button to add the parameter clicked Finish and the function was added to my class I'm not sure how different that is from VC 6 (I bet David Crow knows :)) Mark

              "Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder

              I Offline
              I Offline
              Immunity18
              wrote on last edited by
              #9

              double CAnaktisiDlg::FindDF(CString file , CArray < CString, CString& > &FArray) is what i create (indetifier CArray error) double CAnaktisiDlg::FindDF(CString file , CArray < CString, CString& > FArray) same :/ according to you it had to be working fine :((

              M 1 Reply Last reply
              0
              • I Immunity18

                :( i put Find ( CString file , const CArray& FArray) c:\program files\microsoft visual studio\myprojects\anaktisi\anaktisidlg.h(18) : error C2143: syntax error : missing ',' before '&' c:\program files\microsoft visual studio\myprojects\anaktisi\anaktisidlg.h(18) : error C2059: syntax error : '&' C:\Program Files\Microsoft Visual Studio\MyProjects\Anaktisi\AnaktisiDlg.cpp(850) : error C2955: 'CArray' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(238) : see declaration of 'CArray' C:\Program Files\Microsoft Visual Studio\MyProjects\Anaktisi\AnaktisiDlg.cpp(851) : error C2511: 'Find' : overloaded member function 'double (class CString,const class CArray &)' not found in 'CAnaktisiDlg' c:\program files\microsoft visual studio\myprojects\anaktisi\anaktisidlg.h(14) : see declaration of 'CAnaktisiDlg'

                D Offline
                D Offline
                David Crow
                wrote on last edited by
                #10

                Immunity18 wrote:

                c:\program files\microsoft visual studio\myprojects\anaktisi\anaktisidlg.h(18) : error C2143: syntax error : missing ',' before '&'

                Did you forget #include <afxtempl.h> in your project's stdafx.h file?


                "A good athlete is the result of a good and worthy opponent." - David Crow

                "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

                I 1 Reply Last reply
                0
                • I Immunity18

                  :( i put Find ( CString file , const CArray& FArray) c:\program files\microsoft visual studio\myprojects\anaktisi\anaktisidlg.h(18) : error C2143: syntax error : missing ',' before '&' c:\program files\microsoft visual studio\myprojects\anaktisi\anaktisidlg.h(18) : error C2059: syntax error : '&' C:\Program Files\Microsoft Visual Studio\MyProjects\Anaktisi\AnaktisiDlg.cpp(850) : error C2955: 'CArray' : use of class template requires template argument list c:\program files\microsoft visual studio\vc98\mfc\include\afxtempl.h(238) : see declaration of 'CArray' C:\Program Files\Microsoft Visual Studio\MyProjects\Anaktisi\AnaktisiDlg.cpp(851) : error C2511: 'Find' : overloaded member function 'double (class CString,const class CArray &)' not found in 'CAnaktisiDlg' c:\program files\microsoft visual studio\myprojects\anaktisi\anaktisidlg.h(14) : see declaration of 'CAnaktisiDlg'

                  K Offline
                  K Offline
                  Kevin McFarlane
                  wrote on last edited by
                  #11

                  Here's an example of how to pass an array argument from the CArray implementation in afxtempl.h

                  INT_PTR CArray::Append(const CArray& src)
                  {
                  ASSERT_VALID(this);
                  ASSERT(this != &src); // cannot append to itself

                  if(this == &src)
                  	AfxThrowInvalidArgException();
                  
                  INT\_PTR nOldSize = m\_nSize;
                  SetSize(m\_nSize + src.m\_nSize);
                  CopyElements(m\_pData + nOldSize, src.m\_pData, src.m\_nSize);
                  return nOldSize;
                  

                  }

                  Kevin

                  1 Reply Last reply
                  0
                  • D David Crow

                    Immunity18 wrote:

                    c:\program files\microsoft visual studio\myprojects\anaktisi\anaktisidlg.h(18) : error C2143: syntax error : missing ',' before '&'

                    Did you forget #include <afxtempl.h> in your project's stdafx.h file?


                    "A good athlete is the result of a good and worthy opponent." - David Crow

                    "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

                    I Offline
                    I Offline
                    Immunity18
                    wrote on last edited by
                    #12

                    #include "stdafx.h" its the first of my include

                    D 1 Reply Last reply
                    0
                    • I Immunity18

                      #include "stdafx.h" its the first of my include

                      D Offline
                      D Offline
                      David Crow
                      wrote on last edited by
                      #13

                      Immunity18 wrote:

                      #include "stdafx.h" its the first of my include

                      :confused: Meaning what?


                      "A good athlete is the result of a good and worthy opponent." - David Crow

                      "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

                      I 2 Replies Last reply
                      0
                      • I Immunity18

                        double CAnaktisiDlg::FindDF(CString file , CArray < CString, CString& > &FArray) is what i create (indetifier CArray error) double CAnaktisiDlg::FindDF(CString file , CArray < CString, CString& > FArray) same :/ according to you it had to be working fine :((

                        M Offline
                        M Offline
                        Mark Salsbery
                        wrote on last edited by
                        #14

                        Works for me but I'm on a different VS version. I also have included afxtempl.h in my projects, although I'm not sure if the wizard uses that... You can always add the function by hand :) Mark

                        "Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder

                        1 Reply Last reply
                        0
                        • D David Crow

                          Immunity18 wrote:

                          #include "stdafx.h" its the first of my include

                          :confused: Meaning what?


                          "A good athlete is the result of a good and worthy opponent." - David Crow

                          "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

                          I Offline
                          I Offline
                          Immunity18
                          wrote on last edited by
                          #15

                          i because it was it wasn't visible and i thought u said did you forget to #include , in your project, the "stdafx.h" file ? And yes i didnt #include "afxtempl.h" but not that i forget ,because i didnt know i had :P

                          1 Reply Last reply
                          0
                          • D David Crow

                            Immunity18 wrote:

                            #include "stdafx.h" its the first of my include

                            :confused: Meaning what?


                            "A good athlete is the result of a good and worthy opponent." - David Crow

                            "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

                            I Offline
                            I Offline
                            Immunity18
                            wrote on last edited by
                            #16

                            Now i include it my double CAnaktisiDlg::FindDF(CString file , CArray < CString, CString > FArray) works fine thank you onces again David :D (both kevin and mark :D)

                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • World
                            • Users
                            • Groups