Форум » [x]Harbour » как получить GUID ? » Ответить

как получить GUID ?

MIKHAIL: Нашел на С функцию формирования GUID, как ее оформить для получения строки ? Может есть стандартные функции в Harbour ? [quote]GUID guid; CoCreateGuid(&guid); char guidStr[37]; sprintf_s( guidStr, "%08lX-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX", guid.Data1, guid.Data2, guid.Data3, guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]); std::string s(guidStr); [/quote]

Ответов - 8

Dima: Разраб сам формирует тот GUID (а это строка) который ему нужен , это если я верно понял вопрос

MIKHAIL: Dima пишет: Разраб сам формирует тот GUID (а это строка) который ему нужен , это если я верно понял вопрос Не понял про разраба... GUID - уникальное случайное число сформированное по особым правилам, и мне нужно его создавать каждый раз при необходимости. Функция выше его формирует, какая функция нужна для возврата из С этой строки ? Что то типа hb_retnl(), только видимо другая...

Dima: MIKHAIL пишет: GUID - уникальное случайное число сформированное по особым правилам, и мне нужно его создавать каждый раз при необходимости. Так и формируй его сам в Harbour , по нужным тебе правилам , при чем тут Cи ?


MIKHAIL: Dima пишет: Так и формируй его сам в Harbour , по нужным тебе правилам , при чем тут Cи ? Уникальность GUID подтверждается определенным алгоритмом с использованием временных меток и возможно MAC адреса, зачем изобретать велосипед если есть уже готовая функция в C

Dima: MIKHAIL пишет: Уникальность GUID подтверждается определенным алгоритмом с использованием временных меток и возможно MAC адреса Жди тогда сишника.... хотя сам бы уже сделал давно имея "TimeStamp" или типа того + Mac карты и сам бы смог потом вносить нужные изменения , тем более формат (шаблон) GUID известен.

Dima: По теме :) http://forums.fivetechsupport.com/viewtopic.php?f=3&t=28026

AndreyZh: Я создаю так [pre2]* -------------------------------------------------------------------------------------------------- * Генерация уникального GUID через класс Windows от XP и выше. Посмотрено и проверено на FoxClub * Делаю через отдельную функцию для освобождение переменных класса и локальных переменных FUNC cgCreaGUID() LOCA oGUID := CreateObject("scriptlet.typelib") IF oGUID <> NIL RETU Alltrim(Lower(Subs( oGUID:GUID, 2, 36 ))) ENDI ErrMess("Не доступен класс Windows: scriptlet.typelib. Смените операционную систему или доустановите класс!",cError) RETU ""[/pre2]

alkresin: MIKHAIL пишет: Функция выше его формирует, какая функция нужна для возврата из С этой строки ? Что то типа hb_retnl(), только видимо другая... hb_retc().



полная версия страницы