私は vc++ 言語を初めて使用するので、vc++ 言語を使用してシステムの一意の ID を取得したいと考えています。システムの一意のIDを取得する方法をコーディングするのを手伝ってくれる人はいますか?
6 に答える
ネットワーク カードの MAC アドレスを使用しないのはなぜですか。これは一意である必要がありますが、ネットワーク カードを変更すると変更されます。
API GetAdaptersInfo を参照してください。参照 http://msdn.microsoft.com/en-us/library/aa365917(VS.85).aspx
見たいCoCreateGuid
( http://msdn.microsoft.com/en-us/library/ms688568(VS.85).aspx )。
特定のマシンに基づいて一意の ID を作成しようとしている場合、私が考えることができる方法の 1 つは、古き良きブーストを使用することです。
たとえば、UUID (GUID 生成) と呼ばれるブースト候補ライブラリの 1 つを検索でき、boost::filesystem を検索できます。ファイルシステムを使用すると、一部のシステム ファイルの作成日を取得し、それらの文字列を使用して GUID を生成できます。
ほんの一例ですが、参考になれば幸いです
これまでの回答とそれに対する回答が示していると思いますが、本当の回答は、一意のシステム ID を必要とするコードを記述しないことです。これは非常に簡単に実行できます。実際、(そのような ID がないため) アプリケーションを作成する唯一の賢明な方法です。ドライブのシリアル番号、MAC アドレスなどに依存するものは、システムが変更またはアップグレードされると、必然的に壊れます。
私が見た値の 1 つは、C ドライブのハード ディスク ボリューム ID です。ただし、ドライブを交換すると変更されます。