TRADUIRE les HEADER'S FILES .h

SDK10.0 traduit prêt à l'emploi a utiliser avec HJWASM,JWASM

  FWT Homepage Translator
Utiliser JWASM avec les headers traduits ou faites des corrections pour ML

Liste de fichiers utilisables sans correction:

 

Headinc traduit réellement le sdk et vous donne les mêmes avantages,c'est le seul.
Vous pouvez utiliser du code en 32 ou 64 bits,l'alignement des structures est le même que les headers c++.Vous pouvez les utiliser sur tout systeme windows,de win 95 a windows 10,il suffit de modifier les constantes données par
before_use_me.exe....Les définitions sont utilisables par HJWASM,ml demande des corrections pour éviter les erreurs internes.

L'usage en est des plus simples,"Include sdk64.inc" ou "Include sdk32.inc"

Rajouter ensuite les inclus particuliers à votre application,richedit.sdk,commctrl.sdk,stdio.sdk ....

Tout n'est pas parfait.Si vous ne trouverez aucune erreur a l'éxécution,les limitations de masm par rapport au c++ rendent la tache ardue.A la compilation,des corrections manuelles pourront être nécessaires pour modifier des constantes trop longues,des noms incompatibles.

Critère de choix d'un assembleur plutôt qu'un autre:

Traducteurs:

Ils sont fort peu nombreux,Aucun n'est parfait,et tous demandent des corrections manuelles et des contrôles.Des corrections mineures peuvent intervenir dans le windows sdk traduit,sans pour autant faire l'objet de communications détaillés.Masm n'admet pas les redéfinitions d'un même prototype,ajout d'un fichier de ressource..Toutes corrections n'ayant aucune incidence sur le code.

Interfaces:

          La syntaxe d'écriture des interfaces est la suivante:
          *
La structure contenant les proto (vector table) est nommé STNomInterface
          * le pointeur est nommé ppvNomInterface
          * La macro est nommé NomInterface,elle remplace invoke et permet un appel directe des fonctions

    Si vous voulez utiliser l'interface IPicture,(celle qui permet d'utiliser les .jpg et .gif)
    Créer son pointeur en data,en rajoutant ppv a son nom (ou copier son nom depuis la macro)
             ppvIPicture dd 0

    Rechercher le nom de son fichier  .SDK,liste.txt ou msdn vont vous dire que l'interface est défini dans
                               Header: Declared in ocidl.h  >>  ocidl.sdk
    Insérer ocidl.sdk dans votre source
    .Il ne reste plus qu'a utliser les fonctions de l'interface en remplaçant invoke par le nom de l'interface
            IPicture get_Width,addr hmWidth
            IPicture get_Height,addr hmHeight
    Les macro COM ou coinvoke permettent d'utiliser plusieurs pointeurs pour une même interface
    Voir translateXX.inc dans le répertoire shared

     


        ;----------------------------------------------------------------

 

 Guide des éventuelles corrections a faire:

 

Internal error (message de ml):

error LNK2001: unresolved external symbol

Erreur ml sur un record:

Erreur de traduction:

 

Sources écrits avec windows.inc

Incompatibilité de Nom avec Masm

 

Certains noms de fonctions sont incompatible avec masm.fabs en est un exemple.On peut comme le fait masm32,rebatir la librairie (certains sources sont fournis par le SDK,CRT..) au prix d'une incompatibilté de cette librairie avec les autres modules windows.La méthode la moins contraignante est d'utiliser un lien dynamique sur la fonction.L'avantage de la méthode est d'utiliser la librairie tel quel.

 

 

 

Si vous trouver cette traduction utile et apporter des corrections aux fichiers,n'hésiter pas en m'en faire part,cela peut servir aux autres.

 

Oleview

C'est un outil puissant contenu dans le SDK.Il permet ,entre autre choses,de traduire en texte les typelib.Il ne reste plus qu'a traduire ces typelib pour masm de la manière suivante.

Copier le texte de la typelib dans un fichier texte et donner lui l'extension .idl.Lancer midl (outil SDK) en lui passant le nom du fichier .idl,ajouter /h nom.h.Il va produire plusieurs fichiers en .c,.h et .tlb.

Dans le .c on trouve le clsid et le IID de l'interface.

Le .h et le .c sont traduisibles par le traducteur d'editmasm.

Ce n'est pas difficile à faire et cela permet de programmer à peu près tout ce qui se trouve sur votre micro

 

exemple: midl cab.idl /h cab.h

Headinc est dans editmasm ou en version anglaise,ici