Заблокирован

Генерация GUID (без WinAPI)

17.03.2015, 11:56. Показов 21205. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подкиньте код генерации GUID на чистом С++
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.03.2015, 11:56
Ответы с готовыми решениями:

Подскажите способ преобразования GUID строчки в GUID тип
Создать GUID и преобразовать в строку легко, а как сделать обратно?

Сгенерировать GUID код без фигурных скобок
Мне надо в XML запихнуть сгенерированный GUID типа GUID="8867f906-9a9b-4f33-88dc-77d54c2cf9a3" Нашел такую функцию, но она...

Определить, входит ли лента GUID с фигурными или без фигурных скобок
Здравствуйте, столкнулся с проблемой. Такое вот задание: написать регулярное выражение, которое определяет, входит ли лента GUID с...

23
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
17.03.2015, 18:04
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Kastaneda Посмотреть сообщение
Microsoft сменили алгоритм и больше не используют mac адрес для генерации guid'ов.
Это не совсем так.
UuidCreate не использует MAC.
UuidCreateSequental использует, поэтому его значения более уникальные.
1
0 / 0 / 0
Регистрация: 28.10.2023
Сообщений: 13
28.10.2023, 16:21
случайность не гарантирует уникальность... Не пойдёт.

Добавлено через 11 минут
Можно ввести Mac адрес как у соседа... Никто не мешает. Даже если у вас сетевая карта... Эта генерация полный бред. Да и насчёт часов не катит... У вас мб неправильное время и точно такое же как и у другой генерации. Т.е. уникальность времени так же не гарантируется если у вас часы идут в разнобой... У некоторых часы вобще стоят и всегда показывают одно и то же время. И что у них будут у всех одни и те же GUID-ы(мак-то тоже не меняется...). Вобщем эта система не работает и выдать может что угодно в том числе одно и то же!!! О как... Надо просто брать предыдущий максимальный номер и увеличивать его на единицу... Уникальность гарантирована. Можно ещё возвращать использованные GUID-ы. Но для этого придётся вести их список... Что согласитесь накладно! И чтобы это работало надо чтобы никто никакие GUID-я больше не генерил и не делал свои генераторы, а все кому надо получали их через один единственный в мире генратор. разумеется удалённо...А если связи нет? Что же придётся подождать... По другому не выйдет!
0
place status here
 Аватар для gunslinger
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
29.10.2023, 05:07
Смотря для каких целей этот генератор нужен.
Я как-то делал подобное (очевидным способом) на "чистом с++ билдере":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
String GetUUID()
{
  // генерация uuid, например (как вариант), 998A0BCC-EC31-4187-881E-1A1CAC90EB64
  String symbols = "0123456789ABCDEF", uuid = "";
  const delimiters_count = 4, uuid_length = 36;
  char delimiter_char = '-';
  bool is_delimiter;
  int i, j, delimiter_pos[delimiters_count] = {9, 14, 19, 24}, symbols_length = symbols.Length();
//  randomize();
  for (i = 1; i <= uuid_length; i++)
  {
    is_delimiter = 0;
    for (j = 0; j < delimiters_count; j++)
      if (i == delimiter_pos[j])
      {
        uuid += delimiter_char;
        is_delimiter = 1;
        break;
      }
    if (!is_delimiter)
      uuid += symbols[random(symbols_length)+1];
  }
  return uuid;
}
Результаты вполне приемлемые (как мне кажется):
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
89A28C4B-BF0C-5ECE-E803-CD214F8BDB3A
A597196E-708F-8F20-FE89-6B8A7AB73610
A94CB131-9C2B-A42C-43F3-45754B22A1B9
76B20C6B-ACAB-FE37-CCF4-795D619B2606
9CCA877C-C4AB-4B0B-0610-D3ABC810D3BA
A6732AD5-ED13-F635-2D79-4D23DB1E673C
E958ADAE-769B-9E55-81CD-1F341EFB2154
3EFFD0B8-50C0-2B69-1BF1-775061377C86
B527F03B-9CBB-784F-9554-BF645C098027
13864AE2-BA48-A52E-FF5A-B41A8B8B3D14
2BA4298C-F76A-4FA9-0568-57623E3DBBF2
CF9DB136-C9B2-036A-55B8-BDB8673DF78F
C14D00DD-11B4-D960-0382-A85866FAD21C
ECC08B59-D502-766E-F76A-19180C30ADDE
64BD6A3C-3F28-A519-26A1-5E352195894A
55C50AD3-1E9E-A8C6-04B2-9D270BF7B573
FFD337CD-6F21-9687-02AE-26DA95DEFA89
45779E30-7E88-C7AA-DB4D-EBDAF0A40C19
EE762853-769B-23F7-B0B8-B709A037E655
1CF877CE-AAA5-836D-0BBC-C2C61D1626D8
0
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,350
29.10.2023, 11:33
1CF877CE-AAA5-836D-0BBC-C2C61D1626D8

Да любым генератором псевдослучайых чисел такое сгенерируй по одной цифре - вероятность повтора будет 1 / 340282366920938463463374607431768211455
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2023, 11:33

Использовать регулярное выражение, определяющее является ли данная строка GUID с или без скобок
Задание: Использовать регулярное выражение, определяющее является ли данная строка GUID с или без скобок. GUID это строка, состоящая из 8,...

Генерация рандомной букво-цифренной строки средствами чистого WinApi
Здравствуйте. Суть - в заголовке топика. Возможно-ли? Если такое возможно - хотелось-бы увидеть пример. Спасибо.

Возможно ли программирование без WinApi?
Использую FASM, есть ли какая документация и вообще такая возможность писать под win32 без winapi? Так же как под дос, запустить какое...

Создание таймера без WinApi
Здравствуйте. Кто-нибудь делал реализацию таймеров без использования WinApi функций, а чисто средствами С++ и чтобы он работал в отдельном...

Создание окна без WinAPI
Хотелось узнать, как создавать окна без использования WinAPI.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru