![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Miyka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
Здравствуйте. Не очень понимаю как пользоватся функцией GUIDFromString. Добавил ObjBase.h, но компилятор все равно говорит что функция не инициализованна. Будет ли рабоать такой код?
Спасибо. |
|||
|
||||
borisbn |
|
||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Miyka,
1. LPGUID GUID = 0; LP означает длинный указатель (long pointer), т.е. ты просто объявил указатель, и сказал, что он не будет никуда показывать ( = 0 ) Делать нужно так
2. char sGUID[] = "11111111-1111-1111-1111-111111111111" в конце должна быть точка с запятой, и в доке к функции сказано
т.е. у тебя ещё и внутри ковычек фигурных скобок не хватает. др. словами должно быть так
3. Вызов функции теперь должен выглядеть так
4. printf("%s",GUID); так нельзя. printf умеет печатать только простые типы. печатать нужно так
итого (как должно было быть) :
P.S. Только щаз заметил
так что придётся переписывать :( -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||||||||||
|
|||||||||||||||
Miyka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
Спасибо, я понял. Про точку с запятой извинюясь, потому что эту строку писал уже тут. Эту строку я считываю с экрана и теперь не очень понимаю как лучше добавить ковычки, но это не критично. Критично то, что эту функцию, компилятор не знает, какие библиотеки надо подключить?
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
подозреваю, что shell.h
|
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
см. CLSIDFromString -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
Miyka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
CLSIDFromString выводит 0-0-0-00000000.
Правильно ли я понимаю, что входящая страко это 32 символа т.е. 255 бит, а выходящая это 16 символов т.е. 128 бит? Мне нужно GUID введенный пользователем, выводить в файл в таком виде что вы его понял комп, другими словами в 128 битным значением |
|||
|
||||
borisbn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
нули выводятся из-за того, что нет фигурных скобок. их нужно добавить
тогда printf тебе не нужен, т.к. он выводит в символьном виде... пиши в файл в бинарном
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||
|
|||||||
Miyka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
char sGUID[] = "{11111111-1111-1111-1111-111111112222}";
А так нельзя? |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
можно, но ты же сам говорил -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
Miyka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
Это для теста и все равно вылазят нули.
|
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
Все должно работать!
код скомпоновал из вышеприведенных фрагментов, так что копирайты сохраняются за borisbn. мой здесь только 'L' (перед строкой.) на этот L - лицензия "public domain" ![]() Это сообщение отредактировал(а) volatile - 23.7.2011, 02:42 |
|||
|
||||
Miyka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.3.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
Короче под мои задачи пришлось написать свой конвертер. Большое спасибо всем ответившим. Последний вариант рабочий. Еще раз спасибо
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |