C Builder XE2 - zufällige UUID generieren [Gelöst]



  • Für einen Postgres Primärschlüssel würde ich gerne eine zufällige (zeitabhängige) UUID generieren.

    Die Boost-Lib bietet das an, jedoch wurden nicht alle Teile der Lib für XE 2 portiert. Dieser include scheitert weil nicht vorhanden:

    #include <boost/uuid/uuid_generators.hpp>

    Kopiere ich die Boostlib in ein Verzeichnis meines Projektes und füge es dem Include-Pfad hinzu gibts andere Probleme. Z.B. diese hier:

    [BCC32 Fehler] uniform_int_float.hpp(42): E2451 Undefiniertes Symbol 'fast'
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(13): #include src\boost\boost/random/uniform_int.hpp
        uniform_int.hpp(21): #include src\boost\boost/random/uniform_int_distribution.hpp
        uniform_int_distribution.hpp(29): #include src\boost\boost/random/detail/uniform_int_float.hpp
        uniform_int_float.hpp(26): namespace boost
        uniform_int_float.hpp(27): namespace random
        uniform_int_float.hpp(28): namespace detail
        uniform_int_float.hpp(32): class uniform_int_float<URNG>
    [BCC32 Fehler] uniform_int_float.hpp(39): E2299 Vorlagenspezialisierung kann aus 'uint_t<Bits>' nicht generiert werden
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(13): #include src\boost\boost/random/uniform_int.hpp
        uniform_int.hpp(21): #include src\boost\boost/random/uniform_int_distribution.hpp
        uniform_int_distribution.hpp(29): #include src\boost\boost/random/detail/uniform_int_float.hpp
        uniform_int_float.hpp(26): namespace boost
        uniform_int_float.hpp(27): namespace random
        uniform_int_float.hpp(28): namespace detail
        uniform_int_float.hpp(32): class uniform_int_float<URNG>
    [BCC32 Fehler] uniform_int_float.hpp(39): E2270 > erwartet
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(13): #include src\boost\boost/random/uniform_int.hpp
        uniform_int.hpp(21): #include src\boost\boost/random/uniform_int_distribution.hpp
        uniform_int_distribution.hpp(29): #include src\boost\boost/random/detail/uniform_int_float.hpp
        uniform_int_float.hpp(26): namespace boost
        uniform_int_float.hpp(27): namespace random
        uniform_int_float.hpp(28): namespace detail
        uniform_int_float.hpp(32): class uniform_int_float<URNG>
    [BCC32 Fehler] uniform_int_float.hpp(42): E2040 Deklaration nicht ordnungsgemäß abgeschlossen
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(13): #include src\boost\boost/random/uniform_int.hpp
        uniform_int.hpp(21): #include src\boost\boost/random/uniform_int_distribution.hpp
        uniform_int_distribution.hpp(29): #include src\boost\boost/random/detail/uniform_int_float.hpp
        uniform_int_float.hpp(26): namespace boost
        uniform_int_float.hpp(27): namespace random
        uniform_int_float.hpp(28): namespace detail
        uniform_int_float.hpp(32): class uniform_int_float<URNG>
    [BCC32 Fehler] uniform_int_float.hpp(47): E2139 In Deklaration fehlt ;
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(13): #include src\boost\boost/random/uniform_int.hpp
        uniform_int.hpp(21): #include src\boost\boost/random/uniform_int_distribution.hpp
        uniform_int_distribution.hpp(29): #include src\boost\boost/random/detail/uniform_int_float.hpp
        uniform_int_float.hpp(26): namespace boost
        uniform_int_float.hpp(27): namespace random
        uniform_int_float.hpp(28): namespace detail
        uniform_int_float.hpp(32): class uniform_int_float<URNG>
    [BCC32 Fehler] static_log2.hpp(51): E2451 Undefiniertes Symbol 'n'
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(60): class choose_initial_n<0>
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): Entscheidung zum Instantiieren: choose_initial_n<0>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(55): Entscheidung zum Instantiieren: choose_initial_n<0>::value
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): class choose_initial_n<n>
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(60): Entscheidung zum Instantiieren: choose_initial_n<>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(51): Entscheidung zum Instantiieren: choose_initial_n<>::c
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): class choose_initial_n<n>
    [BCC32 Fehler] static_log2.hpp(55): E2451 Undefiniertes Symbol 'value'
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(60): class choose_initial_n<0>
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): Entscheidung zum Instantiieren: choose_initial_n<0>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(55): Entscheidung zum Instantiieren: choose_initial_n<0>::value
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): class choose_initial_n<0>
    [BCC32 Fehler] static_log2.hpp(55): E2230 Für die Initialisierung eines Inline-Daten-Members ist ein Konstantenausdruck vom Typ Integer erforderlich
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(60): class choose_initial_n<0>
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): Entscheidung zum Instantiieren: choose_initial_n<0>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(55): Entscheidung zum Instantiieren: choose_initial_n<0>::value
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): class choose_initial_n<0>
    [BCC32 Fehler] static_log2.hpp(61): E2238 Mehrfache Deklaration von 'choose_initial_n<0>::value'
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(60): class choose_initial_n<0>
    [BCC32 Fehler] static_log2.hpp(55): E2344 'choose_initial_n<0>::value' bereits deklariert
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(60): class choose_initial_n<0>
    [BCC32 Fehler] static_log2.hpp(55): E2451 Undefiniertes Symbol 'value'
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): Entscheidung zum Instantiieren: choose_initial_n<16>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(55): Entscheidung zum Instantiieren: choose_initial_n<16>::value
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): class choose_initial_n<n>
    [BCC32 Fehler] static_log2.hpp(55): E2230 Für die Initialisierung eines Inline-Daten-Members ist ein Konstantenausdruck vom Typ Integer erforderlich
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): Entscheidung zum Instantiieren: choose_initial_n<16>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(55): Entscheidung zum Instantiieren: choose_initial_n<16>::value
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace static_log2_impl
        static_log2.hpp(49): class choose_initial_n<n>
    [BCC32 Fehler] static_log2.hpp(88): E2451 Undefiniertes Symbol 'x'
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(97): class static_log2_impl<1,0>
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(86): Entscheidung zum Instantiieren: static_log2_impl<1,0>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(92): Entscheidung zum Instantiieren: static_log2_impl<1,0>::value
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(86): class static_log2_impl<x,n>
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(97): Entscheidung zum Instantiieren: static_log2_impl<>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(88): Entscheidung zum Instantiieren: static_log2_impl<>::c
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(86): class static_log2_impl<x,n>
    [BCC32 Fehler] static_log2.hpp(88): E2451 Undefiniertes Symbol 'n'
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(97): class static_log2_impl<1,0>
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(86): Entscheidung zum Instantiieren: static_log2_impl<1,0>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(92): Entscheidung zum Instantiieren: static_log2_impl<1,0>::value
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(86): class static_log2_impl<x,n>
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(97): Entscheidung zum Instantiieren: static_log2_impl<>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(88): Entscheidung zum Instantiieren: static_log2_impl<>::c
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(86): class static_log2_impl<x,n>
    [BCC32 Fehler] static_log2.hpp(92): E2451 Undefiniertes Symbol 'value'
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(97): class static_log2_impl<1,0>
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(86): Entscheidung zum Instantiieren: static_log2_impl<1,0>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(92): Entscheidung zum Instantiieren: static_log2_impl<1,0>::value
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(86): class static_log2_impl<1,0>
    [BCC32 Fehler] static_log2.hpp(92): E2230 Für die Initialisierung eines Inline-Daten-Members ist ein Konstantenausdruck vom Typ Integer erforderlich
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(97): class static_log2_impl<1,0>
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(86): Entscheidung zum Instantiieren: static_log2_impl<1,0>
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        static_log2.hpp(92): Entscheidung zum Instantiieren: static_log2_impl<1,0>::value
        --- Zurücksetzen des Parser-Kontexts für die Instantiierung...
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(15): #include src\boost\boost/random/mersenne_twister.hpp
        mersenne_twister.hpp(29): #include src\boost\boost/random/detail/seed_impl.hpp
        seed_impl.hpp(20): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/integer/static_log2.hpp
        static_log2.hpp(21): namespace boost
        static_log2.hpp(23): namespace detail
        static_log2.hpp(25): namespace detail::static_log2_impl
        static_log2.hpp(86): class static_log2_impl<1,0>
    [BCC32 Fehler] functional(813): E2238 Mehrfache Deklaration von 'operator hash<string>::()(const string &) const'
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(17): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/shared_ptr.hpp
        shared_ptr.hpp(17): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/smart_ptr/shared_ptr.hpp
        shared_ptr.hpp(32): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/smart_ptr/detail/shared_count.hpp
        shared_count.hpp(37): #include c:\program files\embarcadero\rad studio\9.0\include\dinkumware\functional
        functional(786): namespace std
        functional(787): namespace tr1
        functional(807): class hash<string>
    [BCC32 Fehler] functional(794): E2344 'operator hash<string>::()(const string &) const' bereits deklariert
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(17): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/shared_ptr.hpp
        shared_ptr.hpp(17): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/smart_ptr/shared_ptr.hpp
        shared_ptr.hpp(32): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/smart_ptr/detail/shared_count.hpp
        shared_count.hpp(37): #include c:\program files\embarcadero\rad studio\9.0\include\dinkumware\functional
        functional(786): namespace std
        functional(787): namespace tr1
        functional(807): class hash<string>
    [BCC32 Fehler] functional(838): E2238 Mehrfache Deklaration von 'operator hash<wstring>::()(const wstring &) const'
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(17): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/shared_ptr.hpp
        shared_ptr.hpp(17): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/smart_ptr/shared_ptr.hpp
        shared_ptr.hpp(32): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/smart_ptr/detail/shared_count.hpp
        shared_count.hpp(37): #include c:\program files\embarcadero\rad studio\9.0\include\dinkumware\functional
        functional(786): namespace std
        functional(787): namespace tr1
        functional(832): class hash<wstring>
    [BCC32 Fehler] functional(794): E2344 'operator hash<wstring>::()(const wstring &) const' bereits deklariert
      Vollständiger Parser-Kontext
        MD5C.CPP(45): #include src\boost\boost\uuid\uuid_generators.hpp
        uuid_generators.hpp(17): #include src\boost\boost/uuid/random_generator.hpp
        random_generator.hpp(17): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/shared_ptr.hpp
        shared_ptr.hpp(17): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/smart_ptr/shared_ptr.hpp
        shared_ptr.hpp(32): #include C:\Program Files\Embarcadero\RAD Studio\9.0\include\boost_1_39\boost/smart_ptr/detail/shared_count.hpp
        shared_count.hpp(37): #include c:\program files\embarcadero\rad studio\9.0\include\dinkumware\functional
        functional(786): namespace std
        functional(787): namespace tr1
        functional(832): class hash<wstring>
    

    Das mach so also alles keinen Sinn. Was kann ich tun?





  • Ich benutze das hier:

    UUID create_guid()
    {
       UUID uuid;
       ::ZeroMemory( &uuid, sizeof( uuid ) );
       if( ::UuidCreate( &uuid ) != RPC_S_OK )
       {
          ::UuidCreateSequential( &uuid );
       }
       return uuid;
    }
    
    AnsiString get_guid_name( const UUID& uuid )
    {
       AnsiString GUID;
       unsigned char* UIDSTR = 0;
       if( ::UuidToString( &uuid, &UIDSTR ) == RPC_S_OK )
       {
          GUID = reinterpret_cast<char*>( UIDSTR );
          ::RpcStringFree( &UIDSTR );
       }
       return GUID;
    }
    
    AnsiString create_guid_name()
    {
       return get_guid_name( create_guid() );
    }
    


  • DocShoe schrieb:

    Ich benutze das hier:

    UUID create_guid()
    {
       UUID uuid;
       ::ZeroMemory( &uuid, sizeof( uuid ) );
       if( ::UuidCreate( &uuid ) != RPC_S_OK )
       {
          ::UuidCreateSequential( &uuid );
       }
       return uuid;
    }
    
    AnsiString get_guid_name( const UUID& uuid )
    {
       AnsiString GUID;
       unsigned char* UIDSTR = 0;
       if( ::UuidToString( &uuid, &UIDSTR ) == RPC_S_OK )
       {
          GUID = reinterpret_cast<char*>( UIDSTR );
          ::RpcStringFree( &UIDSTR );
       }
       return GUID;
    }
    
    AnsiString create_guid_name()
    {
       return get_guid_name( create_guid() );
    }
    

    Genau das habe ich gesucht. Anfangs dachte ich,, dass die API Funktion immer die gleiche ID generiert, halt hardwareabhängig. Deswegen bin ich dem nicht nachgegangen. Aber es funktioniert.

    Vielen Dank!!! 👍



  • String GetUUID() {
    
    	GUID guid;
    	CoCreateGuid(&guid);
    	return Sysutils::GUIDToString(guid);
    }
    

    CoCreateGuid verwendet auch UuidCreate zum erstellen der UUID somit kann man es ein wenig vereinfachen.


Anmelden zum Antworten