RECUPERER L'UID DE SON PROCESSEUR (CPUID)

cs_revo Messages postés 70 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 7 juin 2006 - 23 janv. 2004 à 12:48
Galactus13 Messages postés 335 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 16 août 2023 - 10 oct. 2009 à 19:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19705-recuperer-l-uid-de-son-processeur-cpuid

Galactus13 Messages postés 335 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 16 août 2023 1
10 oct. 2009 à 19:05
Je sais, je date 2004 ... 200000009 ...
Sa marche toujours !
rhabib Messages postés 96 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 22 février 2008
16 janv. 2005 à 22:07
ebart t'es super mais dis moi est ce que c'est possible de diminuer l'activite du processeur en vb ?
cs_ndg Messages postés 7 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 31 janvier 2005
16 déc. 2004 à 17:26
Merci sibi tu as deja tout mis dans ton zip
cs_ndg Messages postés 7 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 31 janvier 2005
16 déc. 2004 à 17:15
Salut sibi12

Encore une petite question...con. Je suis pas tres habitué avec les dll et mon vb me sort des message d'erreur comme quoi mon point d'entrée n'est pas valide pour la dll. est ce que tu peut m'aiguiller sur la maniére d'appeller ta procedure de la bonne facon...

Merci pour ton aide
cs_Nocturne Messages postés 115 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 15 novembre 2007
16 déc. 2004 à 16:45
Merci sibi12 pour ta dll.

En reponse à ndg,
Normalement le numéro de serie du processeur est toujours unique, si c'est pas le cas verifie que l'option cacher le numéro du Proc est desactivé dans le Bios de ta machine.
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
16 déc. 2004 à 16:35
Heuuu..plutôt bizarre oui... faudra que j'essaie...

sinon je viens de poster une DLL en assembleur qui te permettrai de contourner le problème du P-Code : http://www.asmfr.com/code.aspx?ID=28218 regarde le zip
cs_ndg Messages postés 7 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 31 janvier 2005
16 déc. 2004 à 16:08
merci pour le conseil

Juste une autre petite chose, je viens de lancer le prog sur un poste et le numero de serie est le meme que sur mon pc???? je croyais que le numero de serie processeur etait toujours unique?
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
16 déc. 2004 à 15:47
Ouhh la..ben coup de chance ^^

en fait le P-Code n'est pas du code natif. c a d qu'il n'est pas directement exécuté par le processeur. si tu désassemble ton programme compiler en P-Code le desassembleur va t'envoyer sur les rose. Le code est interpreter par le run-time VB un peu comme java ou .Net mais en bcp moins puissant.
Les performances vont en resentir les conséquence. Si tu veux contourner le problème ==> DLL ActiveX (Ou Dll tout court ^^)
cs_Nocturne Messages postés 115 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 15 novembre 2007
16 déc. 2004 à 15:41
Je viens de faire un essai en compilation P-Code et ca fonctionne.

Felicitation a toi sibi12, mais quel est la difference entre la compilation P-Code par raport en Code Natif?
cs_ndg Messages postés 7 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 31 janvier 2005
16 déc. 2004 à 15:34
Yesssssssssssssssss

Merci sibi12,
j'ai essayé en P- code et sans optimisation et ca fonctionne tres bien les deux.
Maintenant petite question si j'integre ce code dans le mien quels sont les differences fonctionnelles de mon programme si il est en P-code comparer au code natif
???
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
16 déc. 2004 à 15:17
Une idée comme ca... compiler sans optimisation ou en P-Code... Je dis pas que ça ira mais tu peux tjs essayer
cs_Nocturne Messages postés 115 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 15 novembre 2007
16 déc. 2004 à 14:40
En reponse a ndg,
J'ai 2 PC, l'un en 98SE et l'autre en Win2000, le prog gCPUID.exe ne fonctionne ni sur l'un, ni sur l'autre.

Alors peut être que ce prog. ne fonctionne que sous XP???

Pour sibi12, je ne maitrise pas l'environnement VC++ ou win32dasm

Enfin bref c'est pas grave merci de votre aide, si qq un trouve la solution, je suis welcome.

Bonne prog a vous tous.
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
16 déc. 2004 à 14:29
Je pensai avoir repondu hier g du louper le bouton envoyer ^^

enfin essaie de le deboguer avec un debogueur comme celui de VC++ ou win32dasm pasque ca peux être beaucoup de chose.

Si c'est l'appel d'api qui foire c'est sur que l'os a son influence. Mais c'est quand même etonnant...
cs_ndg Messages postés 7 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 31 janvier 2005
16 déc. 2004 à 13:38
Salut

Je sais pas si ca peut aider, mais j'ai testé ce programme sur 8 pc avec l'exe d'origine. Resultat sur 3 d'entre eux ca ne fonctionne pas, sur tout les autre il n'y a aucun probleme. Tout les pc sur lesquels ca ne marche pas sont sous windows 2000, les autres sont sous Xp. Est ce que ca peut avoir une influance????
cs_Nocturne Messages postés 115 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 15 novembre 2007
16 déc. 2004 à 11:52
Salut jmlucienvb,
C'est la même chose en executant l'exe dans un autre repertoire ou sur un autre disque.
C'est bizarre cette histoire...
Merci
jmlucienvb Messages postés 129 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 12 février 2009
16 déc. 2004 à 07:44
Juste comme ça parce que j'ai déjà eu ce genre d'incident dans XP :
Ton exe est-il dans le même répertoire que ton prog vbp ?
Si oui met le ailleurs et reteste...
J'ai déjà rencontré ce genre de phénomène sans jamais pouvoir l'expliquer...
cs_Nocturne Messages postés 115 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 15 novembre 2007
15 déc. 2004 à 17:20
Ca merde au 1er appel de l'API CallWindowProc Asm, eax, ebx, ecx, edx
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
15 déc. 2004 à 17:10
Ah oui juste j'ai plus penser que ca passe sous vb ce que tu peux faire ces loguer toutes les instruction c a d inscrire dans un fichier chaque ligne qu'il executer (ou le numéro de ligne c'est aussi bon) et voir ou s'arrete ton log.
ca marche aussi avec des messagebox c'est plus facile mais moin propre ^^

Sinon essaie d'ouvrir l'exe avec le debogueur de VC++ (ou un autre debogueur peut importe) et voir ou et pourquoi il merde.
cs_Nocturne Messages postés 115 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 15 novembre 2007
14 déc. 2004 à 23:58
En mode pas a pas donc sous VB ca marche, aucun problème.

C'est uniquement quand je lance l'executable (gCPUID.exe) ou un autre executable que j'ai crée avec ce code dedans et la il y a une erreur.

L'erreur arrive immediatement lors du lancement de l'executable avec la fameuse boite de dialogue de windows - Erreur d'application et apres soit je fait OK et tout est terminer, soit je fais annuler et la ca ouvre visual c++ pour déboguer le programme.
Visual C++ me donne un message : Unhandled exception in gCPUID.exe : 0xC0000005: Access Violation.

Dans le debug du C++ j'ai les messages suivant :
Loaded 'D:\Alstom\Scan_Disque\Scan_Bdr\Copie de Reg\Remote_PC_Check\New_Remote_PC\Vic32\essai\VRC\Vrc_Mini_Img\SetDiBits\VRC_Fin\EBArtSoft\gCPUID.exe', no matching symbolic information found.
Loaded 'C:\WINNT\system32\NTDLL.DLL', no matching symbolic information found.
Loaded 'C:\WINNT\system32\MSVBVM60.DLL', no matching symbolic information found.
Loaded 'C:\WINNT\system32\KERNEL32.DLL', no matching symbolic information found.
Loaded 'C:\WINNT\system32\USER32.DLL', no matching symbolic information found.
Loaded 'C:\WINNT\system32\GDI32.DLL', no matching symbolic information found.
Loaded 'C:\WINNT\system32\ADVAPI32.DLL', no matching symbolic information found.
Loaded 'C:\WINNT\system32\rpcrt4.dll', no matching symbolic information found.
Loaded 'C:\WINNT\system32\OLE32.DLL', no matching symbolic information found.
Loaded 'C:\WINNT\system32\OLEAUT32.DLL', no matching symbolic information found.
Loaded 'C:\WINNT\system32\VB6FR.DLL', no matching symbolic information found.
The thread 0x9E8 has exited with code 0 (0x0).

Concernant ces DLL, elles sont bien presentes dans mon repertoire system32.

Voili, voilou.

En tout cas, je pense que c'est soit la variable Asm que j'envoie a l'API CallWindowProc Asm, eax, ebx, ecx, edx soit l'API CallWindowProc avec comme declaration ByVal lpPrevWndFunc As String qui merde.

Mais je n'explique pas le pourquoi ca fonctionne sous VB et cela ne fonctionne plus en .exe.

En tout cas merci a toi sibi12
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
14 déc. 2004 à 22:45
quand je dis materiel c y compris les soft qui prennent en charge ton materiel c ta machine entiere quoi. mais c'est vrai que c'et vraiment bizarre que ca fonctionne sous VB6 et pas en code natif.

quand tu execute le programme pas a pas il plante quand ?
cs_Nocturne Messages postés 115 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 15 novembre 2007
14 déc. 2004 à 21:45
Salut sibi12,

J'ai essayé avec l'exe du zip est j'ai toujours la même erreur : L'instruction à "0x00000002" emploie l'adresse mémoire "0x00000002". La mémoire ne peut pas être "read".

Tu as peut être raison c'est peut être un problème materiel.
Domage j'ai cette erreur sur mes deux PC qui sont équipé de deux cartes mere differente et de 2 systèmes d'exploitation differents.

Un Win98 avec un PIII 600, carte mere Abit BH6 et l'autre sous Win2000 avec un PIII 450 et une carte HP Brio.

En tout cas cela n'explique pas que ca fonctionne très bien sous VB.
Si c'est un problème materiel cela devrait pas fonctionner sous VB???
Je ne pige pas grand chose...

Merci a toi sibi12
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
14 déc. 2004 à 21:25
non non le fait que ce soit un string ne pose pas problème, VB envoi juste l'adresse de la fonction a executer à wallwindowproc et cette adresse est en fait l'adresse de lpPrevWndFunc. As-tu essayer avec l'exe fournit dans le zip ?

Si ca marche pas avec ca c que c un probleme propre a ton materiel
Si ca fonctionne change ton compilo VB ^^
cs_Nocturne Messages postés 115 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 15 novembre 2007
14 déc. 2004 à 18:29
Apparament le probleme concerne l'API CallWindowProc car dans ce code source lpPrevWndFunc est en String et normalement elle devrait être en Long.

Si tu trouves la solution, tu es welcome.

Ce que je ne comprend pas c'est que ce code fonctionne sous VB6 et une fois compilé, il me retourne un message d'erreur.

Bonne continuation a toi ndg.
cs_ndg Messages postés 7 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 31 janvier 2005
14 déc. 2004 à 18:14
Salut EBArtSoft,

Ton code est vraiment bien, j'avoue que je comprend pas tout comment il fonctionne mais je l'ai testé sur plusieur pc, il fonctionne trés bien sauf sur un dell pIV 2G avec windows 2000 où il me sort le même message d'erreur que Nocturne. Y a t'il un moyen de coriger ce probleme?

Merci de ton aide
cs_Nocturne Messages postés 115 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 15 novembre 2007
11 déc. 2004 à 11:47
Salut EBArtSoft,

Ton code pour récupérer uid du processeur est tres interessant.
Il fonctionne bien en mode exécuté sous VB6 mais une fois l'exécutable crée et que je l'exécute, il y un problème (Erreur d'application).

Voici le message que j'obtiens :
L'instruction à "0x00000002" emploie l'adresse mémoire "0x00000002". La mémoire ne peut pas être "read".

J'ai fait le test sur 2 PC, l'un est sous Win98 avec un PIII 600, l'autre est sous Win2000 avec un PIII 450 et j'ai le même problème.

Peux tu m'aider a résoudre cette erreur car je ne connait pas l'ASM. Je pense que c'est un problème d'adressage par rapport au type du processeur.
Si c est le cas esqu'il serait possible d'avoir un code compatible pour tous les types de proceseur.

D'avance merci, Nocturne.
mistermadus Messages postés 9 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 13 février 2006
28 janv. 2004 à 18:55
Afyn;

si tu veux gérer toi-même des timers correspondants à la vitesse de ta machine, le mieux est d'utiliser les QueryPerformanceCounter() et QueryPerformanceFrequency(), que tu trouveras tant dans le AllAPI dont j'ai parlé, que dans les fichiers que j'ai diffusé... C'est ce que j'utilise tous les jours, et marche à merveille...

Sinon, je rejoinds Renfield, me demandant pourquoi créer des TLBs si tu as déjà les declares ?
Si vraiment tu insistes, crée une classe vide d'encapsulation de tes déclares en Public, dans un projet ActiveX Exe, et compile-le en "Composant: Fichiers serveur distant" pour générer dépendances et TLBs automatiquement !
rien de plus simple...

Envoyes-moi les déclarations qui te posent problème, et je vais regarder ça...
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
28 janv. 2004 à 18:42
Rectif -> j'ai pas réussi à trouver ce qui clochait (ben oui sinon ...je l'aurais dit)

Afyn
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
28 janv. 2004 à 18:39
->Ren
En utilisant ODLCreator d'EB, je mes suis apercu que les déclarations contenant un type généraient le message suivant :

Type ByRef icompatible...

Si tu peux voir de ton coté, j'ai réussi a trouver ce qui clochait !

Et comme, l'utilisation des TLB fait gagner 20%, je voit pas pourquoi je m'en passerai (en plus ca éviter de déclarer a chaque projet...)

Merci
Afyn
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 janv. 2004 à 08:28
Je vois pas où ce situes exactement ton problème, puisqu'il te suffit d'avoir la declaration de tes API pour créer le TLB......
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
27 janv. 2004 à 18:13
-> C'est trés sympa de ta part (J'ai déja toute une collection d'exemples) mais ca peut servir a d'autres !
Pour ton info :
Le control SsubTimer n'est pas assez précis car il apelle les API
Set Timer et Kill Timer de Winmm.dll
Le Waitable Timer est plus précis, j'ai déjà parcouru ce sujet maintes fois.
Les autres Timer font appel au même procédé, donc inutile pour moi.
La DLL Précis de BruNews a l'air intéressante, mais je pense quelle fais appel au Performance Counter.

Non ce qu'il me faut a ce stade de mon prog , c'est Des Tlb, ou que je puisse créer ces Tlb, comme avec le Prog de EB. (Qd il ser a au point )

Donc ma demande Tiens toujours.

Encore Merci pour tes recherches.

A+

Afyn
mistermadus Messages postés 9 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 13 février 2006
27 janv. 2004 à 01:13
-> Afyn : Bon, désolé, mais j'ai pas assez de temps devant moi...

Non, j'y crois pas ! tu ne connais pas tes classiques ?...
(oui, je sais, j'abuse...)

alors voici les bonnes adresses du doctor ;

Ray Mercer (multimedia en vb6) <- Pas que de l'AVI
http://www.shrinkwrapvb.com/

AllAPI (declares & exemples) <- LA BIBLE !
http://www.allapi.net/

Steve Mac (vbAccelerator) <- controles SSubTimer

et j'en oublie...

Comme j'ai pas le temps; je t'ai jeté une compil, tant de codes MIDI low-level, que des Timers en haute-résolution.
Je te recommande de télécharger AllAPI très vite, et tu trouveras les 3 fonctions qui te manques dans le nouveau fichier que je viens de jeter sur :
http://mistermad.free.fr/vb/Midi&Time.zip

en espérant que tu trouveras ton bonheur, sinon dis-le moi (cette nuit j'ai pas bcp de temps)
a++
mistermadus Messages postés 9 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 13 février 2006
27 janv. 2004 à 00:10
>Afyn:

Normalement, j'ai les declares de toutes ces fonctions, et meme quelques encapsulations qui fonctionnent parfaitement...
Mais le probleme, c'est qu'il faut que j'explore mes archives...
Si tu peux attendre 1 à 2 jours, tu auras tout (j'espère !)...
je vais regarder...

a++
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
26 janv. 2004 à 23:08
-> Mister Mad

midiOutClose
midiOutGetDevCaps
midiOutOpen
midiOutReset
midiOutShortMsg

Les Fct MIDI en général + les Timer + qq Cursors (clip machin )

timeBeginPeriod
timeEndPeriod
timeGetDevCaps

CreateWaitableTimer
OpenWaitableTimer
SetWaitableTimer
CancelWaitableTimer
CloseHandle
WaitForSingleObject
MsgWaitForMultipleObjects

QueryPerformanceCounter
QueryPerformanceFrequency

+ Les Types Associés

(en fait, j'ai besoin d'aller assez vite dans le moteur du séquenceur, et avec une précision de 300µs, comme ca je peut faire autres choses, éditer les notes en temps réel quand ca joue, afficher sur un piano guide etc ...)


Ca serait sympa ... Cest clair §!§

Merci d'avance.

Afyn
Navedac - Les cancres sont de retour
mistermadus Messages postés 9 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 13 février 2006
26 janv. 2004 à 20:41
(ps; pour l'info: c'est "mister Mad", ceux qui ont connu le projet "Thunder" chez microsoft doivent peut-etre se rappeller...)

Sinon, pour les autres, j'ai pas mal d'exemples, en linkage dynamique, statique (par les Obj), ou comme dans les files que je viens de mettre a dispo...
Mais comme vous etes tous adorables, je viens de poster la technique de Robert Heinig (rheinig@gmx.net), qui ne fait que spoofer le linkeur de VB pour lui faire accepter ce qu'on veut...
à dispo sur :
http://mistermad.free.fr/vb/LinkSpoof.zip

Afyn, quelles sont les fonctions que tu cherches dans ta WinMM.Tlb ?

il suffit de demander !
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
26 janv. 2004 à 20:38
Le temple du savoir, il peut pas me trouver ma WinMM.tlb ? Il falloir que EB améliore son OdlCreator... pour que je puisse me la faire
-> BruNews, t'as pas une idée toi pour passer les types ? en idl

(Sur ce, j'va chercher mon potte qui joue du sax, et j'm'en va jouer du jazz... c'est moins compliqué que les Tlb et les appels sur la pile que j'empile, puis que je depile, je sauve les registres, je passe en mode superviseur etc.. etc..)
A+
Afyn
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
26 janv. 2004 à 20:20
Comme je vois beaucoup il y a deja pas mal de site parlant d'ASM dans du VB mais j'ai pas vu vraiment d'ASM intégré dans le developpement VB a part avec le linkage mais ça doit être assez lourd...Ou alors je suis passer a coté...


EB => Merci pour le lien...
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 janv. 2004 à 20:18
EB, ou tu vas chercher tout ça ? Je suis plie quand je lis tes conneries et je ne peux plus bosser. Pitie.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 janv. 2004 à 20:08
mistermadus> Mais d'ou vient-tu Mistermadus ?
0 source, 0 message et pourtant une source
de savoir sans nul pareil, es-tu le gardien du
temple VB dont parle la legende ? es-tu un
etre venu d'ailleurs pour apporter au jeune
padaouane vbiste la connaissance ? ou bien
es-tu le père noël ?

Peut importe, nul ne sait son secret mais
qlq part loin d'ici, MISTERMADUS lui ... sait !

thx

;-)

@+
mistermadus Messages postés 9 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 13 février 2006
26 janv. 2004 à 19:30
Bon, puisqu'il m'est impossible de poster ces fichiers ici (?...)

ils sont à dispo de tous sur ;

http://mistermad.free.fr/vb/ASM.zip pour les exemples ASM
http://mistermad.free.fr/vb/TLBs.zip pour les Tlbs...

je les laisse quelques jours, et reste à dispo de ceux qui veulent en savoir plus, si je peux aider...
mistermadus Messages postés 9 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 13 février 2006
26 janv. 2004 à 18:50
Bon, puisque ca interesse du monde, je vais poster :

- une petite collection de TLBs, qui couvrent pas mal de choses...
- quelques exemples de linkages ASM-VB, utilisant differentes techniques, depuis NASM jusqu'a l'include d'hexs... Mais pour etre franc, et si vous voulez reellement humilier les défenseurs du C, je vous recommande de tests PBDLL, vous permettant de porter votre code VB à la vitesse de l'asm directement !...
a voir sur http://www.powerbasic.com/
sinon, y'a encore PureBasic et d'autres jouets, demandez-moi...
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
26 janv. 2004 à 18:18
Ben il manque les Tlb les plus importantes pour moi
sur http://www.chez.com/scribe/

WinMM
et
Kernel32

Ou alors j'ai pas su trouver ?
A+
Afyn
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 janv. 2004 à 17:54
sibi12> NASM (http://nasm.sourceforge.net/) !
...et bon courage...

;-)

@+
sibi12 Messages postés 337 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 avril 2006
26 janv. 2004 à 17:33
Salut à tous,

Mais elle est géniale cette source...J'avais jamais pensé a cette manière de mettre de l'asm dans du code VB...

C'est limité à de petit code...mais pourquoi pas prendre un assembleur en open source récuperer la fonction qui permet de compiler et créer dynamiquement les comandes assembleurs...

On pourrait mettre des parties d'assembleur un peut partout dans le code et on le genererait à l'execution...et Pourquoi pas faire un AddIn qui mettrait dans un .res le code assembleur déjà générer qu'il ne resterait plus qu'à appeler...

Je sens que je vais me pencher sur l'idée dés que j'aurais le temps...

Mais je le ferais direct en .Net tant qu'à faire...autant prendre de l'avance...

J'ai déjà les source de PEDASM mais si quelqu'un a l'adresse d'un asembleur open source... je suis prenneur

@++
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
26 janv. 2004 à 17:04
Je dirais même que c'est :

-> AUTOWASH !

A+
(Faudrait que je bosse un peu sur mon prog, plutot que de passer mon temps sur EB Forum Paradise ...)
(J'ai un problème avec ClipCursor ...
Il me clippe, mais il me déclippe qd j'appuis sur la touche TAB
QQ à une idée ? )

Afyn
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 janv. 2004 à 15:45
Mais c'est formidable ...
C'est le "Paradise forum" !!!
Tous le monde a eu son cadeau ?

;-)

@+

(avec un peu de bonne vonlonté on avance...)
jmlucienvb Messages postés 129 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 12 février 2009
26 janv. 2004 à 15:43
Merci bcp mistermadus
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 janv. 2004 à 15:30
Voila un forum particulier qui n'aura pas ete inutile.
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
26 janv. 2004 à 15:21
-> Mister
Mais pourquoi tu l'as pas dit plus ToT !
J'ai perdu la moitié du WE ... a essayer de faire des TLB.
Je vais aller voir de ce pas
A+
Afyn
mistermadus Messages postés 9 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 13 février 2006
26 janv. 2004 à 15:10
Afyn, si je peux me permettre :
j'utilise tous les jours les .TLB de Patrice Scribe (gloire à lui), qui encapsule 99% de l'API windows dans sa Win32.Tlb.
a voir sur http://www.chez.com/scribe/
et qui corrige meme les déclarations de microsoft...

sinon, pour les Ole2, il y a aussi l'incontournable Eduardo A. Morcillo;
http://www.mvps.org/emorcillo/

si necessaire, je peux poster ces TLB qui changent la vie...
jmlucienvb Messages postés 129 Date d'inscription mercredi 24 septembre 2003 Statut Membre Dernière intervention 12 février 2009
26 janv. 2004 à 07:50
L'idée d'Afyn me plait aussi...
>EB de toutes façons bravo, tu as soulevé l'enthousiasme, et puis reste en VB...
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
24 janv. 2004 à 09:26
Je vois que tous le monde à bien dormi...
et que c'est la grande forme ce matin sur L'EB Forum (au citron vert).

Ben moi j'ai un message pour EB et Renfield.
Serait il possible (non en fait je sais que c'est possible) de creer une bibliothéque de fichier TLB qui reprendrait les déclarations des API (ben comme ça on gagnerai les 20% de VB.net)
Genre :
Winmm.Tlb
Kernel32.Tlb
etc...
et de mettre cette bibliothéque a disposition de fans de VB.
(comme par hazard, c'est de ces API que j'ai besoin, et je suis pas du tout intéréssé... non, non,).

Bon en tout cas ça pourrait être utile ! ?

Merci pour votre écoute et votre attention.

BruNews, si tu as des idées pour faire foncer VB en gardant sa facilité syntaxique... n'hésites pas.

A+
Afyn
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 janv. 2004 à 09:01
A quand la source donnant le PUID en pur .NET ?
En pensant ainsi le framework ne sera jamais fini, 20 Go a prevoir pour l'an prochain.
ASM, C, ne plus y penser, c'est une plaisanterie. Y aurait plus personne pour ecrire l'evolution du framework ni de quoi que ce soit, tous manoeuvres voila un bel avenir.
Quake recompile en .net fait 20% de moins en frames/secondes, chacun jouant dans sa cour et le troupeau sera bien garde.
Sinon tout a fait d'accord avec les avantages de .net mais seulement par rapport aux autres langages interpretes.
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
24 janv. 2004 à 08:39
Pour le PUID, encore faut-il qu'il soit activé dans le bios pour que ça marche, je crois (en plus cela ne concerne que les processeurs qui en ont un, à mon avis c'est beaucoup plus récent que les 486, non ?)

Maintenant, concernant le forum, moi aussi je "milite" pour que nos stars reste en VB, et non pas sur C, C++ ni C#, et pourquoi pas ASM pendant qu'on y est ? Tous ces langages sont des monstres de non-productivité, il faut tout simplement ne plus y penser à l'avenir. Tous les arguments qui ont été évoqués ici sont tous résolus dans VB.Net. Alors c'est vrai qu'il y a eu un énorme cafouillage entre les framework 2002 et 2003 (recompilation quasiment nécessaire pour tous les programmes fait avec VS.Net 2002, gestion insuffisante de l'interface de compatibilité avec les contrôles VB6 : le code binaire ne marche quasiment jamais sur une autre machine), mais une fois que tous les plâtres auront été essuyés, il restera cela :
- Langage multiplateforme comme Java
- Framework multilangage (et ce avant même la compilation) : mieux que Java
- Compilation JIT : à la volée, ce qui veut dire d'abord un code exe portable, puis optimisé pour le processeur locale une fois la première compilation à la volée terminée (automatique)
- Puissance de la POO
- Simplicité de la syntaxe du VB
Et voilà !
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 janv. 2004 à 22:48
Afyn vois que je suis bien d'accord avec toi sur le C++, pour cela tu n'en verras quasi jamais dans ce que je fais, c'est toujours C + ASM.

EB, John Carmack & Michael Abrash, les references absolues. C'est avec les parutions de Michael Abrash que j'ai le plus appris en ASM, et en plus il est comique dans ses bouquins. Que vouloir de plus ?
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
23 janv. 2004 à 22:38
-> EB t'es vraiment un seigneur.

Je suis d'accord pour dire que le C est performant,
mais pas le C++ (Nan!!!)

Le C++ c'est lourd et disgracieux.

Le C est plus léger et ... plus humain aussi.

(j'voulais avoir le dernier mot)
PS: BruNews ne le prend pas mal car je pense que tu maitrises ton art et je m'incline bien bas devant toi. (c'est vrai que ca tiens du forum ... du faux Rhum !)

Bonne soirée à tous
Afyn
A+
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
23 janv. 2004 à 22:10
Oula mais c'est un vrais forum par ici !
(mer6 mer6 ... )

BruNews a raison sur le coté performance le c arrive
en seconde place apres l'assembleur vb est loin derriere
(je fait souvent des dll en vcpp pour tester les routines
ya pas photo !)

Mais Afyn a raison sur le coté facilité et debuggage
vb est de tres tres loin le language le plus performant
en terme devellopement d'appli bcp d'entreprise devellope
leur programmes reseau ou leurs fixup en vb car ils prennent
moins de temps

c'est une question de gout et de competence et c'est vrais...
je l'avoue ... si je connnaissais mieu le c je ne ferais peut etre
que du c et de l'assembleur mais je suis feneant comme c'est pas possible ;-)

BruNews>
pour le fun je l'ai compilé !
12 288 octets pour le Code Segment !
c'est sur que meme en enlevant tout les objets,form,resources etc..
j'en serais encore loin en VB ! lol

Je dirait quand meme pour finir mon monologue que tout les
languages son bon, a condition de bien les connaitre et c'est
a nous programmeur d'en tirer le meilleurs et de donner aux
utilisateur ce qu'il en droit d'attendre de sa machine car on
a encore trop souvent tendance a assimilé la performance
avec le materiel ram et processeur !

Et je prendrais comme exemple Quake I (sorti en 1996 je vous le rappel ) etait un jeu entierement en 3D avec son multidirectionel
lumiere dynamique arbre bsp musique qualité CD etc...
fontionnais a une allure constante de 60 images par
seconde sur mon 80486 70Hz et cela sans directX ni toute
autre framework (de me%$*) !!!!

Tout ça pour dire que la difference c'est pas
la language c'est l'humain !

@+

(dedicacé à John Carmack & Michael Abrash)
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
23 janv. 2004 à 21:34
-> Renfield

Tu as raison, c'est intéressant.

Il est fort le Hobbit.

-> EB

Sur mon micro ca fonctionne Nickel.

Afyn
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 janv. 2004 à 21:33
Je n'ai jamais dit que c'est facile mais je pense qu'EB s'en sortirait sans probleme.
C'est une boutade que je lui balance de temps en temps, rien de plus.
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
23 janv. 2004 à 21:28
Moi je suis sur qu'a partir de VB, avec ses fonctions in line EB peut faire mieux et plus court.
BruNews ->
Dis moi combien de fois tu as compilé avant d'en arriver la ?
Combien de temps tu as passé a comprendre les merveilles de WIN ?
Le CPP sous windows n'a aucun charme, malheureusement, et c'est pour cela qu'il n'attire personne.
Il vaudrait mieux que EB apprenne le C pur, avec sa connaissance des API de win, et son assembleur il ferait des ravages.
J'ai un projet sous VB qui atteint les 10 000 lignes, je te l'envoi par mail et tu le passes en C++ puisque c'est le top ?
Chiche or Not Chiche
Aprés on pourra juger des avantages d'un langage par rapport a un autre.
(Sur ATARI, il y avait un prog qui transformait le GFA Basic en C, mais je me rapelle plus son nom, c'était qd même balaise).

Un autre problème, qui peut freiner certain, c'est que VB est en francais, alors que VC++ est en anglais.

C++ n'est pas facile à aborder sous win, je le crain.

A+

Afyn
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 janv. 2004 à 20:25
interessante, cette façon d'appeler de l'assembleur !!
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 janv. 2004 à 19:34
Allez EB, le module complet pour le fun:

#include <windows.h>

typedef struct _CPU_ID {
DWORD lo;
DWORD mi;
DWORD hi;
} CPU_ID, *LPCPU_ID;

__declspec(naked) void __stdcall GetCpuSerialNumber(LPCPU_ID pid)
{
__asm {
mov eax, 1
cpuid
mov edx, [esp+4]
mov [edx], eax
mov eax, 3
cpuid
mov eax, [esp+4]
mov [eax+4], edx
mov [eax+8], ecx
ret 4
}
}

__declspec(naked) char* __stdcall bnw2hex(DWORD dwNbr, char* pszdst)
{
__asm {
mov eax, [esp+4]
mov ecx, [esp+8]
mov [esp-4], ebx
mov edx, eax
xor ebx, ebx
mov byte ptr[ecx+4], 0
mov bl, 3
hexloop:
mov eax, edx
and al, 00001111b
add al, 90h
daa
adc al, 40h
daa
mov [ebx+ecx], al
shr edx, 4
dec ebx
jns hexloop
lea eax, [ecx+4]
mov ebx, [esp-4]
ret 8
}
}

void __stdcall FormatCpuSerialNumber(char *pszdest, LPCPU_ID pid)
{
char *c;
c = bnw2hex(HIWORD(pid->lo), pszdest);
*c = '-';
c = bnw2hex(pid->lo, c+1);
*c = '-';
c = bnw2hex(HIWORD(pid->hi), c+1);
*c = '-';
c = bnw2hex(pid->hi, c+1);
*c = '-';
c = bnw2hex(HIWORD(pid->mi), c+1);
*c = '-';
bnw2hex(pid->mi, c+1);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int)
{
char szbuff[32];
CPU_ID id;
GetCpuSerialNumber(&id);
FormatCpuSerialNumber(szbuff, &id);
MessageBox(0, szbuff, "CPU SerialNumber", 0x40);
return 0;
}
lumesh Messages postés 564 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 7 novembre 2008
23 janv. 2004 à 19:30
Engagez vous qu'ilss ont dit, engagez vous ....

En tout ca super merci ca va m'aider extraordinairement !
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 janv. 2004 à 18:59
EB je ne desespere pas de t'embarquer, quand je vois tant de talent et d'energie pour si peu d'efficacite, non ça ne peut pas durer.

typedef struct _CPU_ID {
DWORD lo;
DWORD mi;
DWORD hi;
} CPU_ID, *LPCPU_ID;

__declspec(naked) void __stdcall GetCpuSerialNumber(LPCPU_ID pid)
{
__asm {
mov eax, 1
cpuid
mov edx, [esp+4]
mov [edx], eax
mov eax, 3
cpuid
mov eax, [esp+4]
mov [eax+4], edx
mov [eax+8], ecx
ret 4
}
}

Franchement, t'a pas envie de venir faire de cette façon ?
Allez, bon boulot a tous.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
23 janv. 2004 à 18:45
Afyn>
Merci , merci , merci ... je merite pas... non.. non...
je suis petit... oh oui petit... un vrai hobbit ! lol :-P
je vous donne les dates de mes representations ? lol

BruNews>
J'y travail tres dur ! mais j'ai deja du mal a faire un
hello world de tête alors un truc complet !

au fait ? ça marche ? je veus dire le code ?

encore mer6

@+
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 janv. 2004 à 18:45
ok mais y aura vraiment que l'esprit, pour l'efficacite c'est pas ça.
La recup de iD CPU se fait avec 2 appels de CallWindowProc donc 10 empilages de params (12 en comptant IP), en C ou ASM c'est ZERO param car instructions inserees en direct.
Afyn Messages postés 608 Date d'inscription samedi 3 août 2002 Statut Membre Dernière intervention 22 décembre 2016
23 janv. 2004 à 18:31
-> BruNews
A condition qu'il porte tous les codes de VB sur CPP...
On va pas se laisser piquer nos idoles qd même!
De toute façon on peut presque programmer en VB avec
l'esprit du C (a part qq opérations sur les bits ).
Le seul problèmpe de VB c'est que pour un RAD tu te
retrouves vite avec un projet qui frole les 10000 lignes
et tu l'a même pas vu venir.
->EB
C'est beau la gloire .

A+
Afyn
Navedac
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 janv. 2004 à 15:32
Salut EB,
impec ton idee de joindre le pdf Intel meme si peu de gens l'utiliserons depuis vb.
Je te repete que tu serais le bienvenu sur cppfrance...
ciao...
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
23 janv. 2004 à 12:50
revo> Nostalgique ?

QBasic quel belle invention...

lol

@+
cs_revo Messages postés 70 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 7 juin 2006
23 janv. 2004 à 12:48
On en revient au temps des peek et poke du C64 :-)
Rejoignez-nous