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 Offline
    I Offline
    Immunity18
    wrote on last edited by
    #1

    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 < >

    K M 2 Replies Last reply
    0
    • 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 < >

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

      You need to have something like this: FindDF(const CArray& filepathnames)

      Kevin

      I 1 Reply Last reply
      0
      • K Kevin McFarlane

        You need to have something like this: FindDF(const CArray& filepathnames)

        Kevin

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

        :( 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 K 2 Replies Last reply
        0
        • 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