Click here to Skip to main content
12,251,027 members (39,089 online)
Click here to Skip to main content
Add your own
alternative version


97 bookmarked

CAMEL - CPU Identifier Class

, 14 Jan 2003 CPOL
Rate this:
Please Sign up or sign in to vote.
A class to detect ALL the features of the CPU / CPUs in the local system. Now at version 1.2
<!------------------------------- STEP 2 ---------------------------><!-- Include download and sample image information. -->


Demo Screenshot 1   Demo Screenshot 2   Demo Screenshot 3



Camel is a generic Windows® / Linux CPU detection class which can display details about the hardware installed within the computer. It can display items such as the CPU manufacturer, CPU model and name, clock speed and other hardware details.

What Do I Get With This?

Well a complete CPU identification and capabilities class. Also there is a complete Windows version detection algorithm included in the demo source. The demo (including pre-compiled binary) provides a replacement for WCPUID and similar applications and as the binary is < 150 kb, it is nice and small.

How Can I Use It?

1. E-Mail me for permission to use/include (always given). I just want to know what purpose it is being used for. It is provided completely for "Non-Commercial Usage."
2. Include the files in your C++ project.
3. Compile!
4. Play!

What About.... AKA: Specific In-depth Details

Supports Microsoft® Windows™ From:

Windows™ 95 / 95 OSR2 / 95 OSR2.5
Windows™ 98 / 98 SE
Windows™ Millennium
Windows™ NT 3.51
Windows™ NT 4.0 Workstation / Server [Including SP1 to SP6a]
Windows™ 2000 Workstation / Server / Advanced Server / Datacenter Server (Including SP1 to SP3)
Windows™ XP Personal / Professional [Including SP1]
Windows™ .NET Web Server / Standard Server / Enterprise Server

Supports Processors From:

Intel / AMD / Cyrix / Rise / UMC / IDT / Transmeta / NexGen / National Semiconductor

See Camel.txt for processor listings... E.g. Pentium III "Coppermine" or Athlon XP 1800+ (Thoroughbred Core).

Detects Hardware Features:

Processor hardware

Single Processors
Dual Processors
Multiple Processors
HyperThreading Technology
Serial Number [if enabled]
On-Chip APIC Hardware
Hard-Coded Chip Names
L1 Cache Size
L2 Cache Size
L3 Cache Size
CPU Clock Speed [of each processor]
Thermal Monitioring Support
ACPI Support
On-Chip PowerManagement [SpeedStep, etc.]

Multimedia Instruction Sets

Streaming SIMD Extensions
Streaming SIMD Extensions [Floating Point]
Streaming SIMD Extensions [MMX]
Streaming SIMD Extensions 2

General Instruction Sets

Floating Point Unit [FPU]
Time Stamp Counter [TSC]
Conditional Move [CMOV]
Memory Type Range Registers [MTRR]

Other notes:

The 2nd generation CPU speed test is "loosely" based on code from Pavlos Touboulidis. It is far enough removed to be no-longer copyright to him. I think. Anyway this is the obligatory mention.

Known Bugs And Problems:

CAM_00000001: Last Tree Node Fails To Display '+' Icon Properly.
CAM_00000002: CPU Speed Detection Results With +/- 10MHz Deviation. (FIXED: Version 1.2)
CAM_00000003: Fails To Detect APIC ID Properly With < Intel P4 Processors.


Some of the functionality is missing. Some of the menu items do not yet work nor some of the benchmarks. None of these missing features affect the CPU identification code! I apologize and will implement these in time. Or you can.....


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Germany Germany
Iain Chesworth graduated from Heriot-Watt University in June of 2002 in Computer Science and Physics. He now works as a C++ programmer and plays with code in his spare time. He is also a keen cyclist and swimmer.

You may also be interested in...

Comments and Discussions

QuestionHow to identify Cores? Pin
MayerBurli17-Aug-06 4:59
memberMayerBurli17-Aug-06 4:59 
Generalpermission Pin
MayerBurli17-Aug-06 4:58
memberMayerBurli17-Aug-06 4:58 
Questionpermission Pin
dacian_herbei1-Aug-06 22:29
memberdacian_herbei1-Aug-06 22:29 
Generalpermission Pin
chunnu_8010-Apr-06 7:40
memberchunnu_8010-Apr-06 7:40 
GeneralVC 6.0 Project works first time only Pin
Gonzus23-Feb-06 5:10
memberGonzus23-Feb-06 5:10 
GeneralUsing the source code in VB.NET Pin
codemaster220-Jan-06 20:48
membercodemaster220-Jan-06 20:48 
GeneralRe: Using the source code in VB.NET Pin
thisisbullshit11-Mar-07 20:53
memberthisisbullshit11-Mar-07 20:53 
QuestionPentium&#174; III (0.13 &#181;m) ??? Pin
matt200026-Nov-05 5:36
membermatt200026-Nov-05 5:36 
GeneralWindow 2003 server Pin
tunchi16-Sep-05 10:41
membertunchi16-Sep-05 10:41 
GeneralPermission to use Pin
Borrisholt6-Jul-05 0:59
memberBorrisholt6-Jul-05 0:59 
GeneralPermission to use Pin
Nightfox21-Mar-05 21:34
memberNightfox21-Mar-05 21:34 
GeneralPermission. Pin
Jijoraj29-Sep-04 0:26
memberJijoraj29-Sep-04 0:26 
Generaluse camel on Linux Pin
gretp5-Aug-04 9:29
membergretp5-Aug-04 9:29 
GeneralHyperThreading (Physical x Logical Processor) Pin
leandrobecker28-Jun-04 14:19
memberleandrobecker28-Jun-04 14:19 
GeneralCache line data Pin
Adi Shavit16-Jun-04 1:45
memberAdi Shavit16-Jun-04 1:45 
GeneralProblem with Frequency Pin
dum26-Mar-04 3:05
memberdum26-Mar-04 3:05 
QuestionHow to make CPU ID enable to get? Pin
gkey26-Feb-04 23:43
membergkey26-Feb-04 23:43 
AnswerRe: How to make CPU ID enable to get? Pin
voodoopriestess27-Feb-04 3:47
membervoodoopriestess27-Feb-04 3:47 
GeneralRe: How to make CPU ID enable to get? Pin
gkey27-Feb-04 14:21
membergkey27-Feb-04 14:21 
GeneralPermission Required Pin
kashi_mughal@hotmail.com11-Feb-04 17:43
memberkashi_mughal@hotmail.com11-Feb-04 17:43 
GeneralRe: Permission Required Pin
voodoopriestess27-Feb-04 3:38
membervoodoopriestess27-Feb-04 3:38 
GeneralProblems using your software.... Pin
MattBarker10-Feb-04 4:38
memberMattBarker10-Feb-04 4:38 
Generalf***ing program Pin
Fucking Bush Fucking USA21-Oct-03 20:12
sussFucking Bush Fucking USA21-Oct-03 20:12 
GeneralHyper-Threading Identification is not working correctly Pin
congc3-Oct-03 8:57
membercongc3-Oct-03 8:57 
GeneralRe: Hyper-Threading Identification is not working correctly Pin
congc3-Oct-03 9:05
membercongc3-Oct-03 9:05 
GeneralFeatures struct needs clearing. Pin
Hazmatt31-Jan-03 10:30
memberHazmatt31-Jan-03 10:30 
GeneralRe: Features struct needs clearing. Pin
bobives19-Aug-03 0:00
memberbobives19-Aug-03 0:00 
QuestionHow can I use your source code? Pin
GE22-Jan-03 21:40
memberGE22-Jan-03 21:40 
AnswerRe: How can I use your source code? Pin
voodoopriestess23-Jan-03 8:23
membervoodoopriestess23-Jan-03 8:23 
GeneralWhere do you get Vendor ID Device ID database Pin
leandrobecker22-Jan-03 6:30
memberleandrobecker22-Jan-03 6:30 
GeneralRe: Where do you get Vendor ID Device ID database Pin
voodoopriestess23-Jan-03 8:27
membervoodoopriestess23-Jan-03 8:27 
GeneralRe: Where do you get Vendor ID Device ID database Pin
leandrobecker23-Jan-03 8:33
memberleandrobecker23-Jan-03 8:33 
QuestionWhy __cdecl calling convention? Pin
Daniel S.16-Jan-03 20:04
memberDaniel S.16-Jan-03 20:04 
AnswerRe: Why __cdecl calling convention? Pin
voodoopriestess16-Jan-03 21:07
membervoodoopriestess16-Jan-03 21:07 
GeneralRe: Why __cdecl calling convention? Pin
Daniel S.17-Jan-03 3:22
memberDaniel S.17-Jan-03 3:22 
GeneralMultithreading doesnt work correctly Pin
mfclearner16-Jan-03 8:18
membermfclearner16-Jan-03 8:18 
GeneralRe: Multithreading doesnt work correctly Pin
Tim Smith16-Jan-03 8:24
memberTim Smith16-Jan-03 8:24 
Generalrelease the source luke Pin
saltynuts200215-Jan-03 19:36
membersaltynuts200215-Jan-03 19:36 
GeneralRe: release the source luke Pin
voodoopriestess15-Jan-03 21:00
membervoodoopriestess15-Jan-03 21:00 
GeneralNice app: but incorrect detection of multiple processors Pin
Sonar15-Jan-03 16:03
memberSonar15-Jan-03 16:03 
GeneralRe: Nice app: but incorrect detection of multiple processors Pin
Rick York15-Jan-03 16:21
memberRick York15-Jan-03 16:21 
GeneralRe: Nice app: but incorrect detection of multiple processors Pin
Sonar15-Jan-03 16:56
memberSonar15-Jan-03 16:56 
GeneralRe: Nice app: but incorrect detection of multiple processors Pin
voodoopriestess15-Jan-03 20:58
membervoodoopriestess15-Jan-03 20:58 
GeneralRe: Nice app: but incorrect detection of multiple processors Pin
Anthony_Yio9-Feb-04 15:26
memberAnthony_Yio9-Feb-04 15:26 
GeneralRe: Nice app: but incorrect detection of multiple processors Pin
jmamama24-Apr-04 12:40
memberjmamama24-Apr-04 12:40 
GeneralRe: Nice app: but incorrect detection of multiple processors Pin
Anonymous1-May-04 2:35
sussAnonymous1-May-04 2:35 
GeneralRe: Nice app: but incorrect detection of multiple processors Pin
HyperThreaded12-May-04 13:42
sussHyperThreaded12-May-04 13:42 
GeneralMore memory leaks Pin
Terje Lein-Mathisen7-Jan-03 21:19
memberTerje Lein-Mathisen7-Jan-03 21:19 
GeneralDetecting slow processors Pin
Terje Lein-Mathisen5-Jan-03 23:52
memberTerje Lein-Mathisen5-Jan-03 23:52 
GeneralMemory Leak Pin
Rick York22-Nov-02 13:46
memberRick York22-Nov-02 13:46 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160426.1 | Last Updated 15 Jan 2003
Article Copyright 2002 by voodoopriestess
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid