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 to use Namespaces created in different projects in the same solution?

How to use Namespaces created in different projects in the same solution?

Scheduled Pinned Locked Moved C / C++ / MFC
c++helpcsharpvisual-studiocryptography
15 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.
  • P Offline
    P Offline
    pabloraul
    wrote on last edited by
    #1

    Grettings everyone, today im dealing with Crypto552 created by Wei Dai. im converting a project my father did long ago. since we think different i didnt want to have all the crypto files spread across my solution so i created a project for them. in my visual studio 8 solution i have 2 projects: CRYPTO (In wich the cryptography solucion is written in c++) and builds perfectly; ZEUS08 (Wich is the project thats gonna have the conversion of what my father did in C++) both projects are in C++ inside CRYPTO theres a namespace called CryptoPP. (NAMESPACE_BEGIN(CryptoPP)) wich is in all the files .h and.cpp since im copying parts from the last version im having some problems. the most important one is: im trying to use the namespace CryptoPP in ZEUS08 but it wont allow me... i have tried USING_NAMESPACE(CryptoPP); using namespace CryptoPP; but it keeps telling me: error C2781 : 'CryptoPP' : a namespace with this name does not exist does anybody have an idea why it tortures me with that nonsense?, i mean the project is in my solution why it wont recognize it? help would be apreciated.

    L 1 Reply Last reply
    0
    • P pabloraul

      Grettings everyone, today im dealing with Crypto552 created by Wei Dai. im converting a project my father did long ago. since we think different i didnt want to have all the crypto files spread across my solution so i created a project for them. in my visual studio 8 solution i have 2 projects: CRYPTO (In wich the cryptography solucion is written in c++) and builds perfectly; ZEUS08 (Wich is the project thats gonna have the conversion of what my father did in C++) both projects are in C++ inside CRYPTO theres a namespace called CryptoPP. (NAMESPACE_BEGIN(CryptoPP)) wich is in all the files .h and.cpp since im copying parts from the last version im having some problems. the most important one is: im trying to use the namespace CryptoPP in ZEUS08 but it wont allow me... i have tried USING_NAMESPACE(CryptoPP); using namespace CryptoPP; but it keeps telling me: error C2781 : 'CryptoPP' : a namespace with this name does not exist does anybody have an idea why it tortures me with that nonsense?, i mean the project is in my solution why it wont recognize it? help would be apreciated.

      L Offline
      L Offline
      led mike
      wrote on last edited by
      #2

      pabloraul wrote:

      NAMESPACE_BEGIN

      what the heck is that?

      pabloraul wrote:

      i mean the project is in my solution why it wont recognize it?

      That means nothing. You have to have the namespace header file included for the compiler to know about the namespace.

      led mike

      P N 2 Replies Last reply
      0
      • L led mike

        pabloraul wrote:

        NAMESPACE_BEGIN

        what the heck is that?

        pabloraul wrote:

        i mean the project is in my solution why it wont recognize it?

        That means nothing. You have to have the namespace header file included for the compiler to know about the namespace.

        led mike

        P Offline
        P Offline
        pabloraul
        wrote on last edited by
        #3

        about the NAMESPACE_BEGIN(CryptoPP), i really dont know. the compiler understands that it its the beggining of the namespace and at the end of the file theres a NAMESPACE_END. when i look at the object browser it has something like this: CRYPTO {}CryptoPP //meaning that cryptopp is inside crypto {}Std about including the header file of the namespace, i dont now which one since every file of the class has that thing inside... by the way, i cant even include the files of CRYPTO into de files of ZEUS example: #include "config.h" //cannot include file, no such file or directory

        modified on Tuesday, April 1, 2008 1:13 PM

        L 1 Reply Last reply
        0
        • P pabloraul

          about the NAMESPACE_BEGIN(CryptoPP), i really dont know. the compiler understands that it its the beggining of the namespace and at the end of the file theres a NAMESPACE_END. when i look at the object browser it has something like this: CRYPTO {}CryptoPP //meaning that cryptopp is inside crypto {}Std about including the header file of the namespace, i dont now which one since every file of the class has that thing inside... by the way, i cant even include the files of CRYPTO into de files of ZEUS example: #include "config.h" //cannot include file, no such file or directory

          modified on Tuesday, April 1, 2008 1:13 PM

          L Offline
          L Offline
          led mike
          wrote on last edited by
          #4

          pabloraul wrote:

          i dont now which one since every file of the class has that thing inside

          Well you have to include every header file that defines any class that you want to use anyway. If you are really this confused about header files and namespaces you might need to learn a little more about C++ fundamentals before attempting your project.

          led mike

          P 1 Reply Last reply
          0
          • L led mike

            pabloraul wrote:

            i dont now which one since every file of the class has that thing inside

            Well you have to include every header file that defines any class that you want to use anyway. If you are really this confused about header files and namespaces you might need to learn a little more about C++ fundamentals before attempting your project.

            led mike

            P Offline
            P Offline
            pabloraul
            wrote on last edited by
            #5

            that would be perfect but try explaining that to my dad. lets try this example: file structure: CRYPTO -config.h ZEUS08 -myfile.cpp config.h NAMESPACE_BEGIN(CryptoPP) typedef unsigned short word16; typedef unsigned int word32; #if defined(__GNUC__) || defined(__MWERKS__) || defined(__SUNPRO_CC) #define WORD64_AVAILABLE typedef unsigned long long word64; #define W64LIT(x) x##LL #elif defined(_MSC_VER) || defined(__BORLANDC__) #define WORD64_AVAILABLE typedef unsigned __int64 word64; #define W64LIT(x) x##ui64 #endif since it has the definition for W64LIT i decided to include it. so i put into my file #include "config.h" but it gives me fatal error C1083: Cannot open include file: 'config.h': no such file or directory would u please help me with that or give me a link to c++ basics¿?

            M L 2 Replies Last reply
            0
            • P pabloraul

              that would be perfect but try explaining that to my dad. lets try this example: file structure: CRYPTO -config.h ZEUS08 -myfile.cpp config.h NAMESPACE_BEGIN(CryptoPP) typedef unsigned short word16; typedef unsigned int word32; #if defined(__GNUC__) || defined(__MWERKS__) || defined(__SUNPRO_CC) #define WORD64_AVAILABLE typedef unsigned long long word64; #define W64LIT(x) x##LL #elif defined(_MSC_VER) || defined(__BORLANDC__) #define WORD64_AVAILABLE typedef unsigned __int64 word64; #define W64LIT(x) x##ui64 #endif since it has the definition for W64LIT i decided to include it. so i put into my file #include "config.h" but it gives me fatal error C1083: Cannot open include file: 'config.h': no such file or directory would u please help me with that or give me a link to c++ basics¿?

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

              pabloraul wrote:

              but it gives me fatal error C1083: Cannot open include file: 'config.h': no such file or directory

              Looks like a n include path problem, not a namespace problem. I'm still curious what the NAMESPACE_BEGIN macro expands to... Mark

              Mark Salsbery Microsoft MVP - Visual C++ :java:

              P 1 Reply Last reply
              0
              • P pabloraul

                that would be perfect but try explaining that to my dad. lets try this example: file structure: CRYPTO -config.h ZEUS08 -myfile.cpp config.h NAMESPACE_BEGIN(CryptoPP) typedef unsigned short word16; typedef unsigned int word32; #if defined(__GNUC__) || defined(__MWERKS__) || defined(__SUNPRO_CC) #define WORD64_AVAILABLE typedef unsigned long long word64; #define W64LIT(x) x##LL #elif defined(_MSC_VER) || defined(__BORLANDC__) #define WORD64_AVAILABLE typedef unsigned __int64 word64; #define W64LIT(x) x##ui64 #endif since it has the definition for W64LIT i decided to include it. so i put into my file #include "config.h" but it gives me fatal error C1083: Cannot open include file: 'config.h': no such file or directory would u please help me with that or give me a link to c++ basics¿?

                L Offline
                L Offline
                led mike
                wrote on last edited by
                #7

                pabloraul wrote:

                that would be perfect but try explaining that to my dad.

                Give him the keyboard and I will. Is he the one telling you that you don't need to learn how to do C++ development to do C++ development? Who ever is telling you that is wrong. If you try to Internet Forum your way through this project it's going to take you like 1000 times longer than it would if you just stopped and learned C++ fundamentals first and then did the project. Also after you are done you will have learned about a 1 tenth of what you would had you spent the time actually focusing on learning fundamentals rather than focusing on getting the project done.

                led mike

                1 Reply Last reply
                0
                • M Mark Salsbery

                  pabloraul wrote:

                  but it gives me fatal error C1083: Cannot open include file: 'config.h': no such file or directory

                  Looks like a n include path problem, not a namespace problem. I'm still curious what the NAMESPACE_BEGIN macro expands to... Mark

                  Mark Salsbery Microsoft MVP - Visual C++ :java:

                  P Offline
                  P Offline
                  pabloraul
                  wrote on last edited by
                  #8

                  include path problem, im gonna research about that. about the namespace begin im gonna post few of the files for you to see at least how its supposed to work. wei dai wrote it somehow and it works, i just need to use that library in order to use cryptography in my solution. here is a picture of the object browser for you to see that CryptoPP is a namespace argnames.h #ifndef CRYPTOPP_ARGNAMES_H #define CRYPTOPP_ARGNAMES_H #include "cryptlib.h" NAMESPACE_BEGIN(CryptoPP) DOCUMENTED_NAMESPACE_BEGIN(Name) #define CRYPTOPP_DEFINE_NAME_STRING(name) inline const char *name() {return #name;} CRYPTOPP_DEFINE_NAME_STRING(ValueNames) //!< string, a list of value names with a semicolon (';') after each name CRYPTOPP_DEFINE_NAME_STRING(Version) //!< int CRYPTOPP_DEFINE_NAME_STRING(Seed) //!< ConstByteArrayParameter CRYPTOPP_DEFINE_NAME_STRING(Key) //!< ConstByteArrayParameter CRYPTOPP_DEFINE_NAME_STRING(IV) //!< const byte * CRYPTOPP_DEFINE_NAME_STRING(StolenIV) //!< byte * CRYPTOPP_DEFINE_NAME_STRING(Rounds) //!< int CRYPTOPP_DEFINE_NAME_STRING(FeedbackSize) //!< int CRYPTOPP_DEFINE_NAME_STRING(WordSize) //!< int, in bytes CRYPTOPP_DEFINE_NAME_STRING(BlockSize) //!< int, in bytes CRYPTOPP_DEFINE_NAME_STRING(EffectiveKeyLength) //!< int, in bits CRYPTOPP_DEFINE_NAME_STRING(KeySize) //!< int, in bits CRYPTOPP_DEFINE_NAME_STRING(ModulusSize) //!< int, in bits CRYPTOPP_DEFINE_NAME_STRING(SubgroupOrderSize) //!< int, in bits CRYPTOPP_DEFINE_NAME_STRING(PrivateExponentSize)//!< int, in bits CRYPTOPP_DEFINE_NAME_STRING(Modulus) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(PublicExponent) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(PrivateExponent) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(PublicElement) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(SubgroupOrder) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(Cofactor) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(SubgroupGenerator) //!< Integer, ECP::Point, or EC2N::Point CRYPTOPP_DEFINE_NAME_STRING(Curve) //!< ECP or EC2N CRYPTOPP_DEFINE_NAME_STRING(GroupOID) //!< OID CRYPTOPP_DEFINE_NAME_STRING(PointerToPrimeSelector) //!< const PrimeSelector * CRYPTOPP_DEFINE_NAME_STRING(Prime1) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(Prime2) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(ModPrime1PrivateExponent) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(ModPri

                  M 1 Reply Last reply
                  0
                  • P pabloraul

                    include path problem, im gonna research about that. about the namespace begin im gonna post few of the files for you to see at least how its supposed to work. wei dai wrote it somehow and it works, i just need to use that library in order to use cryptography in my solution. here is a picture of the object browser for you to see that CryptoPP is a namespace argnames.h #ifndef CRYPTOPP_ARGNAMES_H #define CRYPTOPP_ARGNAMES_H #include "cryptlib.h" NAMESPACE_BEGIN(CryptoPP) DOCUMENTED_NAMESPACE_BEGIN(Name) #define CRYPTOPP_DEFINE_NAME_STRING(name) inline const char *name() {return #name;} CRYPTOPP_DEFINE_NAME_STRING(ValueNames) //!< string, a list of value names with a semicolon (';') after each name CRYPTOPP_DEFINE_NAME_STRING(Version) //!< int CRYPTOPP_DEFINE_NAME_STRING(Seed) //!< ConstByteArrayParameter CRYPTOPP_DEFINE_NAME_STRING(Key) //!< ConstByteArrayParameter CRYPTOPP_DEFINE_NAME_STRING(IV) //!< const byte * CRYPTOPP_DEFINE_NAME_STRING(StolenIV) //!< byte * CRYPTOPP_DEFINE_NAME_STRING(Rounds) //!< int CRYPTOPP_DEFINE_NAME_STRING(FeedbackSize) //!< int CRYPTOPP_DEFINE_NAME_STRING(WordSize) //!< int, in bytes CRYPTOPP_DEFINE_NAME_STRING(BlockSize) //!< int, in bytes CRYPTOPP_DEFINE_NAME_STRING(EffectiveKeyLength) //!< int, in bits CRYPTOPP_DEFINE_NAME_STRING(KeySize) //!< int, in bits CRYPTOPP_DEFINE_NAME_STRING(ModulusSize) //!< int, in bits CRYPTOPP_DEFINE_NAME_STRING(SubgroupOrderSize) //!< int, in bits CRYPTOPP_DEFINE_NAME_STRING(PrivateExponentSize)//!< int, in bits CRYPTOPP_DEFINE_NAME_STRING(Modulus) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(PublicExponent) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(PrivateExponent) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(PublicElement) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(SubgroupOrder) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(Cofactor) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(SubgroupGenerator) //!< Integer, ECP::Point, or EC2N::Point CRYPTOPP_DEFINE_NAME_STRING(Curve) //!< ECP or EC2N CRYPTOPP_DEFINE_NAME_STRING(GroupOID) //!< OID CRYPTOPP_DEFINE_NAME_STRING(PointerToPrimeSelector) //!< const PrimeSelector * CRYPTOPP_DEFINE_NAME_STRING(Prime1) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(Prime2) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(ModPrime1PrivateExponent) //!< Integer CRYPTOPP_DEFINE_NAME_STRING(ModPri

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

                    pabloraul wrote:

                    include path problem, im gonna research about that.

                    That's absolutely necessary, since any other problems will be un-fixable until you can successfully include the header files you need. Mark

                    Mark Salsbery Microsoft MVP - Visual C++ :java:

                    P L 2 Replies Last reply
                    0
                    • M Mark Salsbery

                      pabloraul wrote:

                      include path problem, im gonna research about that.

                      That's absolutely necessary, since any other problems will be un-fixable until you can successfully include the header files you need. Mark

                      Mark Salsbery Microsoft MVP - Visual C++ :java:

                      P Offline
                      P Offline
                      pabloraul
                      wrote on last edited by
                      #10

                      by the way, do you have any interesting link about including? cant find anything useful yet...

                      M 1 Reply Last reply
                      0
                      • M Mark Salsbery

                        pabloraul wrote:

                        include path problem, im gonna research about that.

                        That's absolutely necessary, since any other problems will be un-fixable until you can successfully include the header files you need. Mark

                        Mark Salsbery Microsoft MVP - Visual C++ :java:

                        L Offline
                        L Offline
                        led mike
                        wrote on last edited by
                        #11

                        zzzzzzzzzzzzzzzzzzzt What's that sound I hear? Seems familiar. This is almost reel interesting :~

                        led mike

                        1 Reply Last reply
                        0
                        • L led mike

                          pabloraul wrote:

                          NAMESPACE_BEGIN

                          what the heck is that?

                          pabloraul wrote:

                          i mean the project is in my solution why it wont recognize it?

                          That means nothing. You have to have the namespace header file included for the compiler to know about the namespace.

                          led mike

                          N Offline
                          N Offline
                          Nemanja Trifunovic
                          wrote on last edited by
                          #12

                          led mike wrote:

                          NAMESPACE_BEGIN what the heck is that?

                          Some compilers introduced namespaces pretty recently (gcc, for instance), and some libraries are using such macros to take this into account. Xerces-C is doing something similar.

                          Programming Blog utf8-cpp

                          L 1 Reply Last reply
                          0
                          • P pabloraul

                            by the way, do you have any interesting link about including? cant find anything useful yet...

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

                            The #include Directive[^] The first sentence says it all :) Mark

                            Mark Salsbery Microsoft MVP - Visual C++ :java:

                            P 1 Reply Last reply
                            0
                            • M Mark Salsbery

                              The #include Directive[^] The first sentence says it all :) Mark

                              Mark Salsbery Microsoft MVP - Visual C++ :java:

                              P Offline
                              P Offline
                              pabloraul
                              wrote on last edited by
                              #14

                              yay! thenks Mark, that was the answer i was looking for, ill code it later since i have to go out. take care everyone

                              1 Reply Last reply
                              0
                              • N Nemanja Trifunovic

                                led mike wrote:

                                NAMESPACE_BEGIN what the heck is that?

                                Some compilers introduced namespaces pretty recently (gcc, for instance), and some libraries are using such macros to take this into account. Xerces-C is doing something similar.

                                Programming Blog utf8-cpp

                                L Offline
                                L Offline
                                led mike
                                wrote on last edited by
                                #15

                                Thanks

                                led mike

                                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