IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PureBasic Discussion :

[Traduction] de l'aide de ComFramework


Sujet :

PureBasic

  1. #1
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 261
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 261
    Points : 9 924
    Points
    9 924
    Billets dans le blog
    8
    Par défaut [Traduction] de l'aide de ComFramework
    Bonjour tout le monde,

    Je cherche des courageux pour traduire l'aide de ComFramework créé par Freak.
    Il s'agit de macros qui vous faciliterons la vie pour créer des objets COM.

    J'ai mis l'aide en ligne, vous pouvez la lire ici.

    Téléchargez ComFramework

    Je mettrai ensuite cette traduction en ligne sur la rubrique PureBasic.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Voici le début de la traduction :

    Avec l'introduction d'interfaces dans PureBasic, accéder aux objets externes COM (Component Object Model) est devenu assez simple (en termes de quantité de code nécessaires à utiliser). Cependant, créé des objets COM dans PB pour être utilisé à l'extérieur, ou avec des commandes API est encore quelque chose qui requiert beaucoup de connaissances au sujet de PB et de COM et un certain travail à faire. Ce framework essaie de changer ca. Cela fournit une série de macros pour facilement définir un objet et aussi automatiser la plupart des tâches communes pour l'implémentation de tous les objets (comme l'implémentation de l'interface IUnknown). En outre, cela fournir une fonctionnalité de débogage supplémentaire pour tracer les bogues dans votre implémentation. Il y a quelques macros qui sont utiles pour le développement général COM.
    Ajouter votre suite de la traduction à la suite

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Caractéristiques

    Général

    - Aucun préprocesseur utile. Tout est uniquement en PB.
    - Tout est contenu dans les fichiers residents et includes, minimisant les problèmes possibles avec les versions futures de PB
    - Fonctionnel en mode Threadsafe et Unicode
    - Fonctionne avec l'option du compilateur EnableExplicit

    Implémentation de l'objet

    - Macros simples pour définir la structure de la classe
    - Interfaces multiples supportées dans une classe (supérieur à 20)
    - Implementation d'IUnknown est complétement faite par le framework
    - Support du Constructeur/Destructeur
    - Pour les méthodes non implémentés, une méthode par défaut est automatiquement insérée qui retourne #E_NOTIMPL
    - Une VTable est créé avec un simple appel de macro
    - Macros pour une définition facile et manipulation de valeurs de type GUID (IID, CLSID, ...)

    Débogage

    - Suivi complet de tous les appels pour les méthodes des objets, incluant l'affichage des valeurs de retour
    - Suivi des appels pour les objets morts (déjà libérés)
    - Capture des appels de méthode en dehors de la VTable (pour trouver des appels de mauvaises interfaces)
    - La totalité de la sortie du debug pour le suivi peut être customisé avec 'DebugLevel'
    - Conversion des valeurs GUID et HRESULT en texte pour un débogage plus simple
    - Avec le débogueur inactif, la sortie du debug est sortie via OutputDebugString_() pour un débogage plus facile des dlls

    Suite au prochaine épisode

  4. #4
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 261
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 261
    Points : 9 924
    Points
    9 924
    Billets dans le blog
    8
    Par défaut
    Si j'ai du courage ce week-end, je mettrai ta traduction au gabarit.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Ouaip... Désolé... seul moyen de faire ca rapidement & proprement le midi au boulot et de faire ainsi avancer le schmilblick !

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Citation Envoyé par comtois Voir le message
    Si j'ai du courage ce week-end, je mettrai ta traduction au gabarit.
    Sinon à quel format veux tu que je te le fournisse ?

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Directement le code HTML

    <a name="license"><h3>License</h3></a>
    <b>Copyright (c) 2006 Timo Harter</b>

    L'autorisation est accordée, à titre gratuit, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation (le «Logiciel»), pour faire face le Logiciel sans restriction, y compris, sans s'y limiter, les droits d'utiliser, copier, modifier, fusionner, publier, distribuer, concéder sous licence, et / ou vendre des copies du Logiciel, et à autoriser les personnes auxquelles le Logiciel est fourni de faire de ainsi, sous réserve des conditions suivantes :

    L'avis de copyright ci-dessus et la présente autorisation doivent être inclus dans
    toutes les copies ou parties substantielles du Logiciel.

    LE LOGICIEL EST FOURNI "EN L'ETAT", SANS GARANTIE DE QUELQUE NATURE QUE CE SOIT, EXPLICITE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER LES GARANTIES DE QUALITE MARCHANDE, D'ADEQUATION A UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES AUTEURS OU DROIT D'AUTEUR TITULAIRES ETRE TENUE RESPONSABLE DE TOUT DOMMAGE, RÉCLAMATION OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION DE CONTRAT, UN DÉLIT OU AUTRE, DÉCOULANT DE OU EN RELATION AVEC LA LOGICIEL OU LES RAPPORTS D'UTILISATION OU D'UNE AUTRE DANS LE LOGICIEL.

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    <a name="install"><h3>Installation</h3></a>
    Pour installer le framework, décompressez le fichier zip directement dans votre dossier PureBasic.
    Le dossier 'ComFramework' doit être placé dans le dossier principal de PureBasic et le contenu
    du dossier 'Residents' doit être copié dans le dossier des résidents de PureBasic.
    L'emplacement et le nom du dosier 'ComFramework' est important, commefolder is important, car c'est de là que les
    fichiers d'include seront automatiquement inclussi les macros du framework sont utilisés.

    <u>Fichiers inclus dans le package:</u>
    \Residents\ - Fichiers Resident contenant les macros de base du framework
    \ComFramework\ - Fichiers d'includes. A inclure dans la source si le framework est utilisé
    \ComFramework\Interfaces\ - Information sur chaque interface supporté. A inclure dans la source au besoin
    \ComFramework\Examples\ - Sources d'exemple

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    <a name="general"><h3>Informations générales</h3></a>
    Le framework COM utilise des noms commencant par '__COM' pour toutes ses utilisations internes, donc pour éviter les conflits, vous devriez ne pas utiliser des noms dans votre code qui commencent par '__COM'.

    NOTE: L'objet du framework est d'implémenter des interfaces qui sont définis dans le 'Microsoft Component Object Model'. Le but est de ne fournir aucune fonctionnalité orienté objet pour PureBasic. Pour automatiser la plupart du travail, le framework a besoin d'informations sur les interfaces données, c'est pourquoi seulement les interfaces prédéfinies peuvent être implémentées, et aucune autre personnalisée (à l'heure actuelle, 855 interfaces sont connues dans le framework).

    Le framework est implémenté par des macros dans les fichiers residents et une série de fichiers d'include. Vous n'avez pas besoin d'inclure les fichiers d'include manuellement. Ils seront inclus automatiquement au besoin par les macros dans les fichiers residents.

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    <a name="guid"><h3>Macros de gestion des GUID</h3></a>
    Les macros de GUID sont indépendants du reste du framework (les utiliser ne causera pas l'inclusion des fichiers include), donc ils peuvent aussi être utilisés uniquement pour faciliter l'accès à des objets externes COM.
    Les macros viennent sous 3 noms, finissant par ...GUID, ...IID et...CLSID. Ils sont exactement les mêmes, ils existent juste séparément pour permettre d'écrire du code lisible.

    <b><font color="#0000d0">DefineGUID</font></b>(Name, long, word1, word2, byte1, byte2, byte3, byte4, byte5, byte6, byte7, byte8)
    <b><font color="#0000d0">DefineIID</font></b>(Name, long, word1, word2, byte1, byte2, byte3, byte4, byte5, byte6, byte7, byte8)
    <b><font color="#0000d0">DefineCLSID</font></b>(Name, long, word1, word2, byte1, byte2, byte3, byte4, byte5, byte6, byte7, byte8)

    Ce sont les mêmes que les macros correspondantes en C. A utiliser pour définir une GUID dans une ligne. La macro crée actuellement une DataSection avec un label appelé 'Name' et les données suivantes, donc le GUID peut être accédé plus tard via '?Name', où Name est le nom utilisé dans la définition. La macro est sûre pour un usage multiple. De multiples définitions de la même GUID seront ignorées, ce qui permet de simplement définir une GUID où c'est utile sans s'inquiéter de ce qui a été défini dans une autre partie du projet (d'autres includefile par exemple).


    <u>Exemple:</u>
    <blockquote>
    ; Definit l'IID IUnknown
    ;
    DefineIID(IID_IUnknown, $00000000, $0000, $0000, $C0, $00, $00, $00, $00, $00, $00, $46)
    ;
    ; Utilise la valeur IID
    ;
    SomeObject\QueryInterface(?IID_IUnknown, @NewPointer.IUnknown)
    </blockquote>


    <b><font color="#0000d0">DefineKnownGUID</font></b>(Name)
    <b><font color="#0000d0">DefineKnownIID</font></b>(Name)
    <b><font color="#0000d0">DefineKnownCLSID</font></b>(Name)

    Le framework inclue un fichier resident appelé 'GuidList.res', qui contient une énorme macro contenant une liste des valeurs GUID extraites du Microsoft Platform SDK aussi bien que du DirectX9 SDK. (Nombre total : 2705 GUIDs) Ces macros permettent de facilement définir une valeur connue par son nom. La plupart des valeurs principales relatif à COM sont connues. Comme la liste est contenue dans une seul macro, la rapidité générale de compilation n'est pas affectée par la liste énorme. Ces macros sont protégés contre des utilisations multiples de la même manière que les macros Define...(), donc définir deux fois une valeur avec une de ces macros n'aura pas d'effet.

    <u>Exemple:</u>
    <blockquote>
    ; Définit l'IDD IUnknown, de la même manière
    ; Le résultat est le même que l'exemple ci dessus
    ;
    DefineKnownIID(IID_IUnknown)

    </blockquote>


    <b><font color="#0000d0">CompareGUID</font></b>(guid1, guid2)
    <b><font color="#0000d0">CompareIID</font></b>(iid1, iid2)
    <b><font color="#0000d0">CompareCLSID</font></b>(clsid1, clsid2)

    Compare les deux valeurs GUID et retourne 1 si elles sont égales et 0 autrement. C'est juste un simple wrapper de CompareMemory() afin d'écrire un code plus lisible.

    <u>Exemple:</u>
    <blockquote>
    ; Retourne 1 bien sûr
    ;
    DefineKnownIID(IID_IUnknown)
    Debug CompareIID(?IID_IUnknown, ?IID_IUnknown)
    </blockquote>

  11. #11
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 261
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 261
    Points : 9 924
    Points
    9 924
    Billets dans le blog
    8
    Par défaut
    J'avais l'intention de le mettre au gabarit, de cette façon, ça fera un article de plus, et le pdf sera disponible. Puisque tu as les outils pour le faire et que je te sens motivé, je te laisse faire pour cet article ?

    Je vais m'occuper de la mise en page de la traduction du fichier CompilerInterface.txt.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Okay pas de problème... Je vais finir de traduire cette article sur le forum plus pratique pour moi, et je le formaterais à la maison.

    <a name="objects"><h3>Implémentation de l'objet</h3></a>

    Les étapes suivantes sont nécessaires pour implémenter un objet COM en utilisant le framework

    <ul><li><a href="#class">Définir la classe</a></li>
    <li><a href="#methods">Implémenter les méthodes</a></li>
    <li><a href="#vtable">Appeler les macros pour créer les VTables</a></li>
    <li><a href="#instances">Créer les instances de l'objet</a></li></ul>

  13. #13
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Je devrais avoir fini la traduction, ce we ou la semaine prochaine. Par contre, il faudra refaire toute la mise en page.

    Désolé Quoique bien motivé, je le ferais en même temps :p

  14. #14
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 261
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 261
    Points : 9 924
    Points
    9 924
    Billets dans le blog
    8
    Par défaut
    Prends ton temps, on est pas à la chaine

    J'ai moi même du mal à me motiver en ce moment, le boulot me prend tout mon temps, et quand j'en sors, j'ai envie de penser à des choses plus légères
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  15. #15
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    J'ai fini la traduction.

    Maintenant faut que je la remette en page.

  16. #16
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Mise en page terminée.
    Fichier uploadé.
    Lien : http://f-lefevre.developpez.com/trad...Framework.html
    Lien donné !

    A vous de relire

  17. #17
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 261
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 261
    Points : 9 924
    Points
    9 924
    Billets dans le blog
    8
    Par défaut
    Parfait je le lirai à l'occasion (je vais essayer de le faire au plus tard dimanche prochain).

    Tu as l'intention de le conserver en l'état ou tu vas le mettre au gabarit ?

    Merci pour la traduction.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  18. #18
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Citation Envoyé par comtois Voir le message
    Parfait je le lirai à l'occasion (je vais essayer de le faire au plus tard dimanche prochain).
    Tu serais bien aimable

    Citation Envoyé par comtois Voir le message
    Tu as l'intention de le conserver en l'état ou tu vas le mettre au gabarit ?
    Conserver en l'état, de facon que Freak puisse l'intégrer directement au paquet.

    Citation Envoyé par comtois Voir le message
    Merci pour la traduction.
    De nada, je travaille sur celle de PureUnit ce we.

  19. #19
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Des news ?

  20. #20
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 261
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 261
    Points : 9 924
    Points
    9 924
    Billets dans le blog
    8
    Par défaut
    hélas non !

    J'ai un boulot de fou en ce moment , je ne touche plus terre ! je bosse la nuit, le jour ! peut-être ce week-end, bref, j'attends que ça se calme un peu avant de faire une lecture.
    Mais si d'autres veulent se lancer et proposer des corrections qu'ils ne se gênent pas.
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

Discussions similaires

  1. [Lex/Yacc] Aide traduction des structures de contrôle
    Par pelo68 dans le forum Générateurs de compilateur
    Réponses: 2
    Dernier message: 07/12/2010, 10h26
  2. [Traduction] de l'aide de PureUnit
    Par comtois dans le forum PureBasic
    Réponses: 0
    Dernier message: 15/11/2009, 13h19
  3. aide traduction script
    Par calitom dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/07/2006, 11h54
  4. [C#] Aide traduction VB=> C#
    Par alex57 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 20/04/2006, 21h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo