| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > GUIDfromString |
| Автор: Miyka 22.7.2011, 09:45 | ||
Здравствуйте. Не очень понимаю как пользоватся функцией GUIDFromString. Добавил ObjBase.h, но компилятор все равно говорит что функция не инициализованна. Будет ли рабоать такой код?
Спасибо. |
| Автор: borisbn 22.7.2011, 14:04 | ||||||||||||||
| 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 22.7.2011, 16:54 |
| Спасибо, я понял. Про точку с запятой извинюясь, потому что эту строку писал уже тут. Эту строку я считываю с экрана и теперь не очень понимаю как лучше добавить ковычки, но это не критично. Критично то, что эту функцию, компилятор не знает, какие библиотеки надо подключить? |
| Автор: bsa 22.7.2011, 17:00 |
| подозреваю, что shell.h |
| Автор: Miyka 22.7.2011, 18:23 |
| CLSIDFromString выводит 0-0-0-00000000. Правильно ли я понимаю, что входящая страко это 32 символа т.е. 255 бит, а выходящая это 16 символов т.е. 128 бит? Мне нужно GUID введенный пользователем, выводить в файл в таком виде что вы его понял комп, другими словами в 128 битным значением |
| Автор: borisbn 22.7.2011, 18:33 | ||||||
нули выводятся из-за того, что нет фигурных скобок. их нужно добавить
тогда printf тебе не нужен, т.к. он выводит в символьном виде... пиши в файл в бинарном
|
| Автор: Miyka 22.7.2011, 19:45 |
| char sGUID[] = "{11111111-1111-1111-1111-111111112222}"; А так нельзя? |
| Автор: borisbn 22.7.2011, 20:18 | ||
можно, но ты же сам говорил |
| Автор: Miyka 22.7.2011, 20:47 |
| Это для теста и все равно вылазят нули. |
| Автор: volatile 23.7.2011, 02:34 | ||
Все должно работать!
код скомпоновал из вышеприведенных фрагментов, так что копирайты сохраняются за borisbn. мой здесь только 'L' (перед строкой.) на этот L - лицензия "public domain" |
| Автор: Miyka 23.7.2011, 20:18 |
| Короче под мои задачи пришлось написать свой конвертер. Большое спасибо всем ответившим. Последний вариант рабочий. Еще раз спасибо |