Я новичок в языке vC++, поэтому хочу получить уникальный идентификатор системы с использованием языка vC++. поэтому, пожалуйста, кто-нибудь может помочь мне в кодировании, как получить уникальный идентификатор системы?Как получить уникальный идентификатор системы с помощью кода vC++?
ответ
Вы хотите посмотреть CoCreateGuid
(http://msdn.microsoft.com/en-us/library/ms688568(VS.85).aspx).
Как это идентифицирует систему? – 2009-07-31 10:37:22
Это не просто уникальный идентификатор системы (почти). – Blindy
Нет функции, которая могла бы сгенерировать тот же самый идентификатор позже. Таким образом, эта функция никак не идентифицирует систему. –
Почему бы вам не использовать MAC-адрес с сетевой карты. Это должно быть уникальным, но изменится, если вы измените сетевую карту.
См. Api GetAdaptersInfo. ссылка http://msdn.microsoft.com/en-us/library/aa365917(VS.85).aspx
По меньшей мере три причины: у нее может не быть сетевой карты, у нее может быть более одной сетевой карты, сетевая карта может быть изменена. – 2009-07-31 13:38:11
Что относительно систем, у которых нет сетевой карты? –
Если используется более одной сетевой карты, выберите первую. Если сетевая карта изменилась, выполните процедуру перерегистрации. Если нет сетевой карты, отдайте машину в музей и купите новую. ;.) Я согласен, что MAC-адрес не является решением 100%, но он должен удовлетворять подавляющему большинству ситуаций. – Rich
ЕСЛИ вы хотите создать уникальный идентификатор на основе конкретной машины, одним из способов, которым я могу думать, является использование старого старого повышения.
Например, вы можете найти одну из библиотек-кандидатов для ускорения, называемую UUID (генерация GUID), и вы можете искать boost :: файловую систему. Используя файловую систему, вы можете получить даты создания на некоторых системных файлах и использовать эти строки для создания GUID.
Просто мысль, надеюсь, что это помогает
Указывает дату установки Windows. Если мне нужно переустановить или каким-то образом коснуться файлов, я получу новый идентификатор. – 2009-07-31 13:47:49
Одним из значений, которое я видел, является идентификатор тома жесткого диска на C-диске. Однако, если вы поменяете диск, это изменится.
Как я думаю, ответы до сих пор и ответы на них указывают, реальный ответ заключается не в том, чтобы писать код, требующий уникального идентификатора системы. Это очень легко сделать, фактически (поскольку такого идентификатора нет), это единственный разумный способ писать приложения. Все, что зависит от серийного номера диска, MAC-адресов и т. Д., Неизбежно нарушается при изменении или обновлении системы.
Что заставляет вас думать, что системы имеют уникальный идентификатор? – 2009-07-31 10:26:17
Что такое «уникальный идентификатор системы»? Идентификатор, который гарантированно будет уникальным в рамках системы, в которой в данный момент запущен процесс, или идентификатор, который однозначно идентифицирует текущую систему? –
Думаю, вам нужно дать нам немного больше контекста. Не могли бы вы сообщить нам, как этот уникальный идентификатор будет использоваться в вашем приложении? Это позволит нам решить, какое решение может быть или не быть адекватным. – Rich