Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2009, 10:41   #1
Бутаков_Сергей
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 55
Вопрос Генерация CLSID. Как?

Цитата:
CLSID – уникальный 32-байтный (128-битный) номер, состоящий из шестнадцатеричных чисел. Первые 8 байт генерируются случайным образом, следующие четыре используются для создания текущего значения даты и времени, остальные генерируются на основе данных о конфигурации компьютера. Как правило, CLSID-номер заключается в фигурные скобки и имеет следующий формат записи: {xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx}. Стандартные объекты Windows, такие как «Панель Управления», «Корзина» во всех ОС имеют фиксированный CLSID.
Кто знает может кините исходничек или сылочку.
Заранее огромное спасибо...
Бутаков_Сергей вне форума Ответить с цитированием
Старый 25.10.2009, 11:04   #2
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

function CoCreateGuid(out guid: TGUID): HResult;

Код:
Создает уникальный глобальный идентификатор(GUID), 
используемый для идентификатора интерфейса(TIID) и идентификатора класса (CLSID).

     Паpаметpы:
guid - Возвращает созданный GUID.

     Возвpащаемое значение:
В случае успеха - S_OK
Ошибки Win32 возвращаются UuidCreate а параметре  HResult.

Комментарии

 Функция CoCreateGuid вызывает UuidCreate который создает GUID. 
Степень вероятности возврата ошибки 
черезвычайно мала ввиду того что число возможных вариантов GUID очень
 велико.  

Функция находится в файле Ole32.dll
The Revolution is Now!

Последний раз редактировалось hoza_syl; 25.10.2009 в 11:34.
hoza_syl вне форума Ответить с цитированием
Старый 25.10.2009, 11:24   #3
Бутаков_Сергей
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 55
По умолчанию

О господи, ты мне этим жизнь не облегчил
Пожалуйста выложите кто нибудь исходник, у меня уже голова взрывается...
Бутаков_Сергей вне форума Ответить с цитированием
Старый 25.10.2009, 11:31   #4
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

На вот:

Код:
var
myClsid : TGIUD:
begin
CoCreateGuid(myClsid);
//Это всё - результат в переменной myClsid
end;
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 25.10.2009, 12:27   #5
Бутаков_Сергей
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 55
По умолчанию

Не компилирует
Например у меня на форме есть listview, мне надо в первую колонку добавить имя какой нибудь библиотеки.dll, получить CLSID этой библиотеки и добавить во вторую колонку
Бутаков_Сергей вне форума Ответить с цитированием
Старый 25.10.2009, 13:26   #6
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

лучше-бы не распыляться, вопрос по сути один http://www.programmersforum.ru/showt...E8%F2%FC+clsid

Цитата:
Не компилирует
шоб компилило, подключите uses activex
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 25.10.2009, 14:52   #7
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Цитата:
получить CLSID этой библиотеки
Так тебе надо загенерить, или получить????

Цитата:
шоб компилило, подключите uses activex
это - раз.

А во вторых - clsid - это не строка - чтобы превратить в строку - далай так:

Код:
var sCLSID : string;
myClsid : TGIUD:
begin
CoCreateGuid(myClsid);
//Это всё - результат в переменной myClsid
StringFromCLSID(myClsid, sCLSID): 
//теперь в переменной sCLSID - строковое представление myClsid
end;
Не компилил - не знаю работает ли.
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 25.10.2009, 15:27   #8
Бутаков_Сергей
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 55
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
var
sCLSID: variant;
myClSID: TGUID;
begin
CoCreateGuid(myCLSID);
StringFromCLSID(myClSID, WideChar(sCLSID));

edit1.Text:= sCLSID;
end;
  • Ошибка Компилятора:
Invalid typecast
Бутаков_Сергей вне форума Ответить с цитированием
Старый 25.10.2009, 15:28   #9
Бутаков_Сергей
Пользователь
 
Регистрация: 27.05.2009
Сообщений: 55
По умолчанию

И как вообще этот фрагмент кода определит что нужно дать CLSID заранее выбранной мной библиотеки?
Бутаков_Сергей вне форума Ответить с цитированием
Старый 25.10.2009, 15:34   #10
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Цитата:
Ошибка Компилятора
Попробуй так - просто компилятора под рукой нету:
Код:
StringFromCLSID(TCLSID(myClSID), WideChar(sCLSID));
Цитата:
И как вообще этот фрагмент кода определит что нужно дать CLSID заранее выбранной мной библиотеки?
Эта тема называется:
Цитата:
Генерация CLSID. Как?
- ГЕНЕРАЦИЯ, а не определение!
Я нигде не увидел вопроса "как узнать CLSID выбранной мной библиотеки?"
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генерация CLISD Бутаков_Сергей Общие вопросы Delphi 4 22.10.2009 23:09
Генерация Штрихкода vlad00777 Помощь студентам 13 13.09.2009 17:13
Генерация случайных... Яр|/||< (^_^) Общие вопросы Delphi 2 22.06.2009 21:33
Псевдослучайная генерация (*_*) Общие вопросы C/C++ 2 01.06.2009 17:36
Генерация заголовка MAcK Фриланс 3 06.11.2008 11:59