Не ясно причем тут учителя - они такие же пользователи как и студенты по сути, т.е. пользуются теми правами, которыми их наделил администратор.
Один раз делаете, а дальше все работает само уже без вашего участия. Нужно будет поучаствовать при добавлении новых пользователей.
Если развернута АД, то можно применить перемещаемые профили, тогда пользовательские профили будут лежать на сервере и можно дать доступ преподу к профилям студентов. Для студентов вообще будет достаточно сохранять свои поделки либо в мои документы, либо на раб.стол .
Дмитрий Шицков, Технически они разные.
Токены с неизвлекаемыми ключами сами производят криптографические операции собственным встроенным чипом. Токены с извлекаемыми ключами - по сути флэшка с паролем - вся криптография происходит на компе. На сколько я знаю.
Да, для авторизации самое то.
Наверное. Достаточно пароль на ключ нормальный поставить, имхо. Функционально получится как тот же truecrypt контейнер - ключ на диске будет зашифрован паролем.
Дмитрий Шицков, не знал, спасибо за информацию, полезно.
Токены стирались на моей практике те которые с извлекаемыми ключами, с неизвлекаемыми не стирались. Дохли разные. Причину обычно выяснить не удается, т.к. токены либо у клиента, либо у сотрудников на руках, которые внятно ничего обычно сказать не могут.
Дмитрий Шицков, т.е. рабочие ключи как обычно в виде файлов. На токенах бэкапы?
Кстати, несколько раз попадал, что eTokenы дохли или стирались по каким-то причинам, так что и бэкапы нужно дублировать. С другими вариантами токенов мало имел дела.
evg_96, Чаще всего нечто похожее случается из-за инкрементной сборки, которая в VC включена по умолчанию.
Поэтому самый первый совет в этом случае - очистить результаты сборки и пересобрать с нуля.
Так же можно вручную удалить из каталога проекта все объектные и исполняемые файлы (да и вообще все лишнее). Для проекта VC достаточно файлов:
*.vcproj* и *.sln (они находятся в корневом каталоге проекта) и ваши исходники, конечно. Все остальное можно удалять - это файлы и каталоги полученные в результате сборки проекта и при следующей сборке они снова появятся.
Еще можно отменить саму инкрементную сборку в свойствах проекта: General->Enable managed incremental build. Это приведет к тому, что каждая сборка будет полностью пересобирать проект. Это увеличит время сборки, но для учебных проектов время сборки обычно не критичный параметр.
В вашем случае не совсем понятно что именно привело к такому поведению. Думаю для вас оптимальным вариантом на данном этапе будет отключение инкрементной сборки.
korvin2, Желаю удачи!
Своим ответом я пытался вас заставить посмотреть на проблему с другой стороны.
Толстый Лорри, Да, лежит. Но я сам к такому выводу до сих пор не пришел.
Пришел к другому выводу - в институт надо было идти сразу, минуя колледж. И еще к одному выводу - учиться заочно бесполезно.
korvin2, Ну т.е. родители согласны вас содержать до 30 лет, оплачивать учебу и помогать деньгами на жизнь? Потому что-на "хоть какие-то" деньги вы не сможете снимать квартиру в другом городе и себя достойно содержать.
Можно, конечно, по спартански - дошираки и общага при вузе ...
Поэтому я и пишу, что с вузом сразу не стоит торопится - сначала встаньте на ноги. В любом случае ВУЗ не панацея. Многие и с двумя вышками двух байт связать не могут.
Rsa97, Ошибка - логичное решение в этом случае, имхо. А выдавать 1 ... это о чем вообще? Тогда уж лучше бы выдавал значение аналогичное sizeof(&main) - тут хоть есть какая-то логика.
Интересно какой компилятор использовал Игорь ?
Игорь, Вообще то так и есть, о чем свидетельствует ваш же опыт - второе значение в обоих случаях одинаково - т.е. это адрес.
Исходя из ответа Rsa97, для записи sizeof(main) компилятор должен бы выдать ошибку.
PS: g++ так и делает:
error: ISO C++ forbids applying 'sizeof' to an expression of function type
sddvxd, вот теперь правильно.
Только еще один момент: в этом случае вы должны в recv передавать размер буфера на 1 меньше, чем есть на самом деле, для того что бы всегда была возможность вставить терминальный ноль, даже когда recv запишет весь доступный объем буфера.
sddvxd, Если речь о выводе на экран, то можно воспользоваться Си функцией printf, там в шаблонах можно указать длину строки для вывода (тогда будет выводится заданное количество символов, не взирая на наличие нулевого символа).
Не знаю, есть ли подобная возможность в плюсовом cout.
Так же, если в дальнейшем планируется работать с полученной информацией как со строкой, то необходимо вручную добавить нулевой байт в конец. Тогда вы получите стандартную с-строку.
krdsev, Пару раз сталкивался, что пользователь не мог зайти в винду, при этом под другим пользователем нормально все работало. Зайдя в каталог профиля проблемного пользователя обнаруживал в одном случае несколько файлов реестра нулевой длины, в другом случае их не было вовсе. Если на компе был только один пользователь, то приходилось загружаться с live носителя или в безопасном режиме.
Тут было не трудно предположить, что проблема в пользовательском реестре.
Так же бывало, что после ввода пароля пользователя винда пыталась загрузить рабочий стол, но в процессе выдавалась ошибка и винда вываливалась на ввод пароля. По описанию это очень похоже на первый случай. При этом визуально файлы реестра были нормальные. Заведя нового пользователя в системе, убеждался что с новым пользователем винда работает нормально.
В подобных случаях проблема с пользовательским реестром это лишь возможная причина, но весьма вероятная, имхо.
Можно было бы каким-нибудь инструментом проверить целостность реестра, но обычно не до этого и нужно, что бы комп заработал. Все равно, обычно, восстанавливать поврежденный реестр нет необходимости. К тому же винда в простых случаях сама пытается его восстановить, если же винде это не удалось и ситуация усугубилась, то не факт, что и другие инструменты справятся. В общем глубже проблему не копал.
Вместо создания нового пользователя, можно переименовывать каталог профиля, в системном реестре делать небольшую правку и винда пересоздает профиль пользователя с нуля.
В системном журнале, обычно, есть какие-то ошибки, но они часто слишком абстрактные и не позволяют сделать каких-либо выводов. Хотя прежде чем что-то предпринимать есть смысл исследовать ошибки в журнале.
Вообще, начина с Вин7 (про висту нет сведений) регулярно сталкиваюсь с проблемами с пользовательскими профилями (это не всегда проблема в реестре). В ВинХР такого не было.
IvankoPo, Возможно, что в вашем случае путь к файлу уже задан в Юникоде и ничего преобразовывать не нужно. Посмотрите под отладчиком что конкретно содержится в argv[1]. Каждый символ в Юникодной строке в винде будет представлен двумя байтами, а не одиним.
В свойствах проекта включите поддержку Unicode, тогда argv должен стать wchar_t.
Встречные вопросы: В какой кодировке задано имя файла? Эта кодировка установлена в винде?
Vitaly Melnikov, Решать вам в конечном итоге, я же не знаю вашей ситуации.
Если для дублирования информации у вас нет веских причин, то нужно этого избегать, т.к. дублирование ведет к проблеме синхронизации информации.
И еще один момент: хранить полный путь в БД так же не стоит - так вы связываете себя с конкретным местом расположения файлов. Хранить в БД стоит относительный путь, относительно какого-либо базового какталога, который задается в параметрах программы. Абсолютный путь будете получать складывая базовый каталог и относительный путь из БД.
Один раз делаете, а дальше все работает само уже без вашего участия. Нужно будет поучаствовать при добавлении новых пользователей.
Если развернута АД, то можно применить перемещаемые профили, тогда пользовательские профили будут лежать на сервере и можно дать доступ преподу к профилям студентов. Для студентов вообще будет достаточно сохранять свои поделки либо в мои документы, либо на раб.стол .