Форум » [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().
полная версия страницы