Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de DLL

Passage de fonction d'une dll C/C++ vers un programme C#

Sujet résolu
    2 mars 2021 à 11:57:20

    Bonjour à tous,

    Je rencontre actuellement un problème avec mes dll. Je dois créer un programme en C# en m'appuyant sur des dll qui m'ont été fourni. Le problème est que les dll n'inclut pas d'interface .NET. J'essaye dois donc passer par un programme C++ qui me permettrait d'envelopper mes fonctions pour une utilisation en C#.

    (Je débute dans ce langage)

    J'ai beau chercher, je tombe sur des exemples qui ne mènent sur rien. J'essaye de passer par des Wrapper mais je ne possède pas les codes sources de mes dll.

    Pouvez-vous m'aider ?

    Merci d'avance.

    -
    Edité par VincentL10 2 mars 2021 à 14:48:16

    • Partager sur Facebook
    • Partager sur Twitter
      2 mars 2021 à 12:15:50

      >(Je débute dans ce langage)

      Lequel ? C++ ou C# ?

      Quel est le type d'interface exportée par vos dll ?

      .NET + COM ?

      .NET ?

      COM ?

      C++ ?

      C ?

      Dependency Walker permet de facilement le déterminer.

      https://www.dependencywalker.com/

      En fonction du type d'interface, les possibilités ne sont pas les mêmes.

      Vous n'avez pas besoin du code sources des dll pour faire un wrapper en C++/CLI mais juste des .h (voire les bricoler vous même si les fournisseurs des dll travaillent comme des sagouins du précédent millénaire).

      EDIT: et les .lib, ça aide.

      -
      Edité par bacelar 2 mars 2021 à 12:28:08

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        2 mars 2021 à 12:37:37

        Principalement C#, j'ai déjà eu l'occasion de faire du C++.

        Mes dll sont en C/C++, je possède aussi des .Pdb et certains .h mais qui eux, sont différents.

        Effectivement je possède aussi leur .lib.

        Merci pour le site, j'ai regarder le logiciel et j'obtiens beaucoup d'erreur de chargement.

        Je suis passer par Dll Export Viewer : https://www.nirsoft.net/utils/dll_export_viewer.html 

        Je pense avoir trouvé mes fonctions. 

        Je ne sais pas si cela aide mais je code sous Visual Studio (du moins j'essaye)

        En revanche je ne suis pas comment ressortir les fonctions pour pouvoir les utiliser ?

        Est-ce qui serait possible d'avoir un exemple ?, s'il vous plait.

        -
        Edité par VincentL10 2 mars 2021 à 14:34:26

        • Partager sur Facebook
        • Partager sur Twitter
          2 mars 2021 à 18:28:28

          >certains .h mais qui eux, sont différents.

          Différents comment ???

          >Mes dll sont en C/C++

          Le C/C++, ça n'existe pas.

          Et avec quoi elles ont été écrites ne devrait pas changer les choses.

          Le plus important, c'est comment elles EXPORTENT leurs symboles externes.

          D'où l'utilisation d'outils de visualisation des symboles exportés pour avoir une idée de la technologie la plus adaptée pour faire le bridge avec.

          Il est tout à fait possible d'exporter pour plusieurs technologies à la fois.

          Vous êtes vraiment sûr qu'il n'y a pas la possibilité d'utiliser .NET, voire COM avant de vous farcir une API C (ou pire encore C++) ?

          >je possède aussi des .Pdb et certains .h

          Vous êtes un veinard. ;)

          >En revanche je ne suis pas comment ressortir les fonctions pour pouvoir les utiliser ?

          C'est toujours la même réponse, c'est fonction de la technologie d'exportation (.NET, COM, WinRT, XPCOM ; ou au pire C++ ou C mais en terme de mangling de nom, pas en terme de langage).

          Donnez nous l'ensemble des noms de fonctions exportées (les noms décorées/manglées si possible).

          Y a t'il une méthode "DllGetClassObject" ou avec un nom approchant ?

          Si c'est vraiment un API C et que vous avez les .h et les .lib et que vous maîtrisez bien le C++, vous n'avez qu'a créer un assembly de classes en C++/CLI : un wrapper.

          Dans les classes C++/CLI que vous voulez utiliser depuis le C#, vous n'avez qu'à faire des #include des .h.

          Il faudra aussi ajouter au projet C++/CLI les références aux .lib.

          Vous n'êtes pas obligé de faire un wrapper C++/CLI si les API sont très simples, en utilisant des DllImportAttribute, mais on arrive accès vite aux limites du bidule.

          https://docs.microsoft.com/fr-fr/dotnet/api/system.runtime.interopservices.dllimportattribute?view=net-5.0

          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            3 mars 2021 à 9:09:50

            Différents dans le sens, que ce ne sont pas les mêmes. De ce que j'ai pu comprendre, les dll enveloppent les .h

            Effectivement les dll sont en en C. Il faut que mon application soit en C# donc je suppose que .NET est possible.

            Par exemple, je possède un MathParser en dll et Pdb. Mais aussi un DLLLoad.h. 

            J'ai créer un programme c++ (.cpp) qui "#include" les .h et j'arrive a sortir des informations de mon .h. Est ce le principe d'un wrapper ?

            (Désoler pour toutes ces questions, j'essaye de comprendre en même temps)

            Merci pour votre aide

            • Partager sur Facebook
            • Partager sur Twitter
              3 mars 2021 à 11:36:01

              Ok, vous ne connaissez pas beaucoup le C# mais vous semblez être aussi très très léger niveau C++, tout du moins sous Windows.

              Ca serait sympa de répondre aux questions concrètes qu'on vous pose. Celles-ci ne sont pas socratiques (ou pas que).

              >Différents dans le sens, que ce ne sont pas les mêmes.

              Lapalisse, sors de ce corps.

              Bon, si c'est parce qu'il y a des "_" au début et des "@xx" à la fin des noms de fonction, c'est juste du mangling/décoration de noms C.

              Si c'est le cas, c'est que les concepteurs de la Dll ont prévus une utilisation en utilisant les conventions C, vraisemblablement. Mais ça serait plus sûr de nous donner les noms des fonctions dans le .h et ce que vous interprétez comme leur émanation dans l'export de la Dll, car les autres types de conventions peuvent avoir des aspects externes assez proche de celle de l'ABI C.

              >De ce que j'ai pu comprendre, les dll enveloppent les .h

              Ok, d'accord, vous êtes complètement pommé, même au niveau C++/Windows.

              Non, une Dll n'enveloppe pas des fichiers d'en-tête.

              Un fichier d'en-tête (.h) peut aider à utiliser un ".lib" de dll. Si des noms dans le .h sont ressemblant avec les noms exportés par la Dll, c'est qu'une interconnexion de type "convention/ABI du C" est vraisemblablement utilisable. Ce n'est pas forcement le cas ou pas forcement le seul moyen d'utiliser cette Dll.

              Elle vient pas avec une documentation utilisateur votre Dll ? Ou avec des instructions dans les .h au minimum ???

              Parce que s'il se sont fendu d'un "DLLLoad.h", c'est qu'ils ne se sont pas dit que leur Dll était une Dll à la noix et qu'un développeur lambda devrait facilement s'en servir en mode "Plug And Play".

              >Effectivement les dll sont en en C.

              Je le répète, que le code source de la Dll soit en C ou en Klingon d'Alpha du Centaure, on s'en cogne !!!

              Ce qui est important, c'est les conventions d'appels/ABI que doit respecter l'appelant de ces fonctions.

              Si c'est pas dans la documentation, on peut utiliser des heuristiques avec les noms décorés exportés par la Dll pour la déterminer.

              >soit en C# donc je suppose que .NET est possible.

              On n'est pas obligé de faire du .NET en C#, mais c'est un peu plus compliqué, et je ne vois pas l'intérêt.

              On choisit un langage car il est en adéquation avec le contexte exécution et les tâches à effectuer, et pas l'inverse.

              >je possède un MathParser en dll et Pdb. Mais aussi un DLLLoad.h.

              Gros veinard. :)

              Montrez-nous "DLLLoad.h" ou au moins un extrait significatif.

              >Est ce le principe d'un wrapper ?

              Non.

              C'est de fournir à du code utilisateur, ici votre code .NET (C# ou autre) un ensemble de primitives (classes, champs, attributs, méthodes, fonctions libres, etc...) qui permettent de facilement utiliser les services offerts par la Dll.

              Il y a donc un minimum de travail de Design de l'API que doit fournir le wrapper .NET, ne serait-ce que pour rendre disponible des fonctions libres d'une API en convention C qui ne sont pas autorisées pour les langages suivant strictement les conventions CLS :

              https://docs.microsoft.com/fr-fr/dotnet/standard/common-type-system

              >(Désoler pour toutes ces questions, j'essaye de comprendre en même temps)

              Désolé pour mon ton cassant mais sur les forum, ce n'est pas de la pédagogie qui semble le plus efficace mais l'andragogie, car nous sommes normalement entre adultes.

              Et un des pré-requis, c'est de dézinguer les idées préconçus qui empêche d'avancer dans l'apprentissage.(la pédagogie du marteau)

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                3 mars 2021 à 11:59:51

                 
                Voici le DLLLoad.h
                Il se pourrait que je n'ai pas fait le c++ mais un autre (j'en ai appris plusieurs en un an, j'ai pu inverser)

                -
                Edité par VincentL10 3 mars 2021 à 12:24:38

                • Partager sur Facebook
                • Partager sur Twitter
                  3 mars 2021 à 13:40:16

                  Ah, bin, la, d'un coup, vous avez plus de veine. :-°

                  Aparté : Évitez les copies d'écran pour du code, utilisez plutôt le bouton [</>] du formulaire de post du forum. Il y a une fin de commentaire qui se balade et on ne voit pas où ça commence.

                  Il se peut que votre Dll support plusieurs conventions d'appel mais ce qui est montré via ce fichier d'en-tête, c'est des conventions d'appels C++.

                  S'il n'y a que ce moyen qui est documenté, les concepteurs de la Dll passent à mes yeux de "professionnels" à "branquignoles".

                  Même sans .NET dans la boucle, c'est déjà méga casse-gueule.

                  Pour en avoir le cœur net, donnez-nous l'ensemble des noms exportés par la Dll, SVP.

                  Ce qu'indique ce fichier, c'est qu'il a une possibilité d'appeler 3 fonctions libres (mais dans un namespace, donc C de base ne fonctionnera pas) et qui utilise des convention d'appels hétérogènes (GG), des décorations de noms "arbitraire fonction du compilateur C++ utilisé pour la compilation de la Dll" (re GG) et que seul MSVC (compilateur C++ de Visual Studio) ou un compilateur compatible GNU sont supporté (re re GG), et en plus il y a des objets C++ qui se baladent entre la Dll et le code utilisateur (via des références de classe en paramètre) (re re re GG).

                  Il est donc assez illusoire, s'il n'y a que ce moyen de documenté, de faire autre chose qu'un wrapper C++/CLI, en serrant les fesses pour que votre MSVC soit compatible avec le compilateur qui a généré la Dll.

                  Commencez par faire un projet C++/CLI qui arrive à appeler ces fonctions. Si ça marche déjà pas comme ça, c'est qu'il faut que vous trouviez la version de MSVC (et des différentes C et C++ Runtime) qui est compatible avec cette Dll.

                  Mais encore une fois, donnez-nous les noms décorées exportées par la Dll.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                    3 mars 2021 à 13:56:55

                    Voici quelque fonction de la dll MathParser si cela vous convient
                    Est ce que le projet C++/CLI, je le trouve dans New Project ou est ce que cela correspond à un C++ (Question venant du fait que je n'ai pas de C++/CLI dans les options de création de projet)
                    Au sujet de la documentation, je n'ai rien concernant le C#, C++... J'ai juste java, python

                    -
                    Edité par VincentL10 3 mars 2021 à 13:57:48

                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 mars 2021 à 16:11:02

                      Ok, le petit "C++" tout à gauche, c'est pour indiquer que c'est un nom de méthode "à la C++" et l'outil c'est démerdé pour reconstruire la signature de la méthode C++ à partir de son nom décoré (ce qui explique qu'il n'indique pas le type de retour des méthodes, limitation du mangling C++).

                      Si tous les symboles exportés ont droit à leur "C++" tout à gauche, c'est qu'il n'y a qu'une interface C++ exporté par la Dll.

                      Mais comme vous ne nous donnez pas tous les symboles exportés, il est toujours possible qu'une API non C++ existe et exportée par cette Dll.

                      Une API purement C++ n'est pas directement appelable depuis du JAVA ou du Python car JAVA à les mêmes limitations que la CLS .NET et le python "de base" ne supporte que les conventions C, pas C++.

                      Il y a donc soit une autre API exportée par la Dll que celle C++, soit ces langages passent par des wrappers, comme celui que vous planifiez de faire.

                      Une recherche de "MathParser" via Google ne donne que des projets qui accepte "nativement" .NET en plus de JAVA et Python, vous la sortez d'où cette Dll ?

                      Si vous n'avez pas le bon Visual Studio, il serait peut-être plus simple de passer par ces wrappers JAVA ou Python plutôt que de vous échinez à passer par cette API C++.

                      Pour ce qui est de la création d'un projet C++/CLI, c'est très variable en fonction de la version de Visual Studio que vous utilisez.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                        3 mars 2021 à 16:23:09

                        Les dll m'ont été fournis et elles me sont imposées. J'en possède plusieurs mais d'après mes besoins je n'aurais pas besoins de toutes les librairies. (Je pense qu'il vaut mieux tous les avoir et pouvoir avancer qu'en avoir oublier et devoir rechercher et réécrit.

                        J'utilise Visual Studio 2017.

                        J'ai cherché et demandé, on me conseille de passer par des Wrappers même si cela reste un peu plus compliqué. Et je dois pouvoir utiliser les dll en C# (langage imposé)

                        using System;
                        using System.Collections.Generic;
                        using System.Linq;
                        using System.Text;
                        using System.Threading.Tasks;
                        using System.Runtime.InteropServices;
                        
                        namespace Wrapper_CSharp
                        {
                            class CrashTest
                            {
                                private const string V = "C:\\...\\Package\\...\\MESFCTS.dll";
                        
                                [DefaultDllImportSearchPathsAttribute(V)]
                                static extern string FCT_1;
                            
                                static void Main(String[] args)
                                {
                                    Console.WriteLine("ESSAIS");
                                    Console.ReadLine();
                                }
                            }
                        }


                        [J'ai une erreur CS1503, Argument 1 : conversion impossible de 'string' en 'System.Runtime.InteropServices.DllImportSearchPath' (l.14)]

                        Merci pour les temps et la patience que vous prenez pour me répondre.

                        -
                        Edité par VincentL10 3 mars 2021 à 16:25:45

                        • Partager sur Facebook
                        • Partager sur Twitter
                          3 mars 2021 à 20:53:31

                           >Les dll m'ont été fournis et elles me sont imposées.

                          C'est pas parce qu'elles vous sont imposées qu'elles ne sont pas accessibles depuis le Web.

                          Vous avez tout à fait raison de garder l'ensemble de ces Dll sous le coude mais savoir d'où elles viennent permettrait de mieux rechercher sur internet les évolutions et autres corrections de bugs qui ne manqueront pas d'advenir. Ainsi et surtout que les tutoriels et exemples qui, espérons, constelleraient la toile.

                          >J'utilise Visual Studio 2017.

                          https://docs.microsoft.com/fr-fr/cpp/dotnet/walkthrough-compiling-a-cpp-program-that-targets-the-clr-in-visual-studio?view=msvc-150

                          Le type de projet, c'est fonction de ce que vous cherchez à faire, un exécutable/application console pour faire des tests préliminaires, c'est bien, pour l'implémentation du wrapper, c'est plutôt une bibliothèque de classe qu'il faudra privilégier.

                          >J'ai cherché et demandé, on me conseille de passer par des Wrappers

                          Oui mais encore ? Wrappers, c'est un terme extrêmement flou.

                          La seule chose que cela exclu, c'est l'usage des appels directs depuis le C#; type "P/Invoque" ou "IJW" (It Just Work); ce qui correspond pile-poil (en très maladroit) à ce que vous faites dans l'extrait de code posté par vos soins. Mauvaise pioche.

                          Après, vos conseilleurs ont peut-être, sciemment ou pas, confondus/amalgamés une librairie de wrappers (dans un assembly dédié) et des classes d'adaptation/façade en C# (ou tout autre langage .NET CLS compliant) qui seront bien plus complexes à mettre en oeuvres même si elles sont dans le même projet que le code utilisateur.

                          Note : C#, F#,VB.NET, etc... sont .NET CLS compliant mais C++/CLI n'est pas .NET CLS compliant car il permet des choses interdites dans la CLS, et c'est ces choses qui rende l'utilisation d'une Dll exportant en C++ "plus facile".

                          Dans l'approche librairie de Wrappers, contrairement à des classes d'adaptateur/façade, vous pouvez très facilement faire ces classes de wrapping (managées) en C++/CLI, les rendant facilement utilisables par tout langage .NET compatible, tout en utilisant "facilement" les fichiers d'en-tête C++ et en référençant les .lib dans ce projet C++/CLI.

                          Il est théoriquement possible d'utiliser plusieurs langages dans un même projet mais cela complexifie la chose sans grands bénéfices, un assembly de wrappers dédié est bien plus simple à créer et à maintenir.

                          >même si cela reste un peu plus compliqué

                          Plus compliqué que quoi ???

                          Si vous parlez de l'utilisation de classes C# d'adaptation/façade, c'est pas qu'un peu plus compliqué : vous allez vous manger, au minimum, l'utilisation des noms de fonctions à coucher dehors qu'utile le débogueur (Dependency Walker a un bouton pour passer de l'affiche des noms de fonction C++ "friendly" /vers/ "vrai" noms des fonctions exportées, j'espère que votre outils dispose de la même fonctionnalité). Et ces noms de fonctions truffés à morts de "?" "@" et autre "_", c'est à vous de les mettre en mode verbatim dans les paramètre de attributs .NET (et c'est pas ce DefaultDllImportSearchPathsAttribute tout moisi qu'il faudrait utiliser).

                          J'espère que le code que vous avez posté est le résultat d'une tentative maladroite de votre part et pas le résultat de ce que vous ont conseillé vos collègues (ou se sont de joyeux farceurs).

                          https://docs.microsoft.com/fr-fr/dotnet/api/system.runtime.interopservices.defaultdllimportsearchpathsattribute?view=net-5.0

                          Donc "DefaultDllImportSearchPathsAttribute", c'est juste pour les psychopathes de la sécurité (dont je fais partie, nul n'est parfait) mais cela n'a rien à voir avec l'utilisation de fonction C++ exportés d'un Dll.

                          Pour faire le travail, c'est bien plus "DllImportAttribute", que j'ai déjà mentionné dans mon second post sur ce sujet de forum (avec lien vers la documentation officielle) qui serait susceptible de faire le taf. Et bon courage pour le mangling de noms C++ avec ça. Comme je l'ai déjà dit, l'approche P/Invoque - IJW dans un contexte d'export C++, c'est pas raisonnable.

                          Le message d'erreur, c'est que vous vous servez de travers d'un attribut .NET qui n'a rien à faire là, donc le compilateur part en sucette en tentant de la dé-sérialisation du truc dans l'espoir de comprendre quelque chose à ce machin.

                          Note: Virez-moi toute trace de valeurs en dure de type chemin dans votre code, SVP !!!! (et fissa !!!)

                          Tous mes avis se basent sur le fait qu'il n'y a qu'un export C++ des fonctions et pas d'autres. Et on en n'a toujours pas la preuve (cf. liste exhaustives des symboles exportées par la Dll, demandée er redemandée à de multiple reprise).

                          L'export C++ étant la pire des "solutions" d'inter-opérabilité, je vous re-conseille de bien évaluer ces possibilités d'exports alternatifs qui vous épargneraient bien du travail inutile.

                          Le seul mais énorme avantage d'avoir un export à la C++, c'est que vous avez une API objet (sous forme des symboles exportés) et que, si leur conception n'est pas trop pétée, vous pouvez vous en servir comme "model" à la conception de vos classes .NET de wrapping.

                          Une classe C++ dans l'API de la Dll => une classe C++/CLI dans votre assembly de wrappers

                          Une fonction C++ dans une classe de l'API de la Dll => une méthode dans la classe C++/CLI qui wrappe la classe C++ "native"

                          Une association entre 2 objets/classes dans l'API de la Dll => une association entre leurs équivalents dans les wrappers (aussi bien instances que classes)

                          etc...

                          Avec une approche "P/Invoque -IJW", ça serait la même mécanique mais avec des classes C# et non des classes C++/CLI managées, mais autrement plus compliqué à implémenter qu'avec des wrappers (dans un assembly dédié), même si le "model" objet serait le même.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                            4 mars 2021 à 9:33:03

                            Le code que je vous est fournir viens de moi, en cherchant, j'ai parfois du mal à comprendre leurs explications donc je peux bien partir et mal finir.

                            Ils m'ont juste indiqué que partir sur un Wrapper est pas mal.

                            Très bien, pour ce qui est des symboles, je possèdes entre autre un MAthParser.pdb, API.pdb, APITest et APITutorial.pdb

                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 mars 2021 à 10:22:58

                              Ok, ce qu'on vous demande est loin d'être trivial, même en connaissant bien .NET ou le C++ "standard".

                              C'est pour cela que je suis un peu étonné que vos collègues ne vous donne pas un petit coup de main, car ils vous imposent quand même pas mal de choses.

                              Les fichiers ".pdb" sont bien des fichiers de symboles utilisés par les débogueurs mais quand je parle des symboles exportés par une Dll je ne parle pas d'un fichier des symboles d'une Dll mais des symboles exportées pas la Dll, en très grande majorité ses fonctions.

                              Donc, en gros, c'est ce que devrait afficher votre outil "Dll Export Viewer". S'il y en a beaucoup pour faire des copies d'écrans et qu'il ne dispose pas d'une options d'exportation en format texte, il y a un utilitaire très pratique dans les fichiers de Visual Studio, DUMPBIN, qui permet de facilement extraire ces données dans un fichier texte.

                              Vous indiquez un fichier "API.pdb", c'est donc qu'il y a un binaire (.exe ou .dll) de nom "API". C'est peut-être une Dll intermédiaire facilitant/simplifiant l'interface de la Dll "MathParser.dll". Si une "API.Dll" existe, vérifiez qu'il ne serait pas plus simple d'utiliser cette Dll plutôt que "MathParser.dll".

                              S'il n'y a que l'export C++, la démarche la plus simple, c'est de créer une classe managée par classe utilisée dans l'API de la Dll et d'utiliser des attributs .NET (attention à ne pas confondre les attributs .NET et les champs en C++, c'est des choses complètement différentes, dans votre code "V" ou "FCT_1" sont des champs mais "DefaultDllImportSearchPathsAttribute" ou "DefaultDllImportSearchPaths" est un attribut .NET appliqué au champ "FCT_1").

                              En mettant l'ensemble de ces classes managées dans un ou plusieurs namespace, différents de ceux définis par l'API de la Dll, cela facilitera l'implémentation de vos classes managées en C++/CLI. (Évitera la confusion entre les classes de l'API de la Dll et les classes managées accessibles depuis du code .NET)

                              https://docs.microsoft.com/fr-fr/cpp/dotnet/how-to-define-and-consume-classes-and-structs-cpp-cli?view=msvc-150

                              (en espérant voir sur ce sujet de forum cette liste de symboles exportées par "MathParser.dll" et pas "API.dll" avant que vous n'entamiez une longue tâche de copier-coller pour implémenter ces classes managées de wrapping)

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                4 mars 2021 à 11:08:20

                                ??4CStaticFuncMapDouble@@QEAAAEAV0@$$QEAV0@@Z	0x00000001800013a0	0x000013a0	11 (0xb)	
                                	
                                ??4CStaticFuncMapInt64@@QEAAAEAV0@$$QEAV0@@Z	0x00000001800013a0	0x000013a0	13 (0xd)	
                                	
                                private: char const * __ptr64 __cdecl CInt64MathParser::Calc(void) __ptr64	0x00000001800022f0	0x000022f0	21 (0x15)	
                                	
                                private: char const * __ptr64 __cdecl CInt64MathParser::CalcToObr(void) __ptr64	0x0000000180002730	0x00002730	23 (0x17)	
                                	
                                private: char const * __ptr64 __cdecl CInt64MathParser::ParseFormula(bool) __ptr64	0x0000000180001a00	0x00001a00	48 (0x30)	
                                	
                                private: char const * __ptr64 __cdecl CInt64MathParser::PrepareFormula(void) __ptr64	0x00000001800018a0	0x000018a0	50 (0x32)	
                                	
                                private: char const * __ptr64 __cdecl CMathParser::Calc(void) __ptr64	0x0000000180005220	0x00005220	22 (0x16)	
                                	
                                private: char const * __ptr64 __cdecl CMathParser::CalcToObr(void) __ptr64	0x00000001800057d0	0x000057d0	24 (0x18)	
                                	
                                private: char const * __ptr64 __cdecl CMathParser::ParseFormula(bool) __ptr64	0x00000001800047d0	0x000047d0	49 (0x31)
                                		
                                private: char const * __ptr64 __cdecl CMathParser::PrepareFormula(void) __ptr64	0x0000000180004680	0x00004680	51 (0x33)		
                                

                                Voici quelques fonctions de MathParser.dll

                                https://www.red-gate.com/simple-talk/dotnet/net-development/creating-ccli-wrapper/ 

                                J'ai trouvé cela, est ce que je peux m'y fier? En source supplémentaire

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  4 mars 2021 à 11:51:28

                                  >Voici quelques fonctions de MathParser.dll

                                  Ok, mais il me faudrait l'ensemble des symboles pour bien vérifier qu'il n'y a que l'export C++ de disponible. (Ca doit pas avoir des milliers de symboles vos Dll, non ?)

                                  Car l'export C++ est celui qui demanderai le plus de travail de "tuyauterie".

                                  Peut-être que wrapper "API.Dll", si elle existe, serait plus simple à wrapper.

                                  L'article dont vous donnez l'url est "récent", donne de bon conseil d'organisation du code, assez détaillé, mon seul regret après un survol très rapide, c'est qu'il ne wrappe pas une Dll mais une librairie statique.

                                  Cela ne change rien sur les aspects "code" à proprement parlé mais il peut être un peu plus complexe d'utiliser une Dll qu'une librairie.

                                  Je pense que c'est un choix rédactionnel, en considérant que le lectorat est assez autonome vis à vis du C++ "standard".

                                  Je vous conseille quand même une lecture très attentive de cet article. C'est un bon point de départ.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                    4 mars 2021 à 12:05:24

                                    ??4CStaticFuncMapDouble@@QEAAAEAV0@$$QEAV0@@Z	0x00000001800013a0	0x000013a0	11 (0xb)	
                                    ??4CStaticFuncMapInt64@@QEAAAEAV0@$$QEAV0@@Z	0x00000001800013a0	0x000013a0	13 (0xd)	
                                    private: char const * __ptr64 __cdecl CInt64MathParser::Calc(void) __ptr64	0x00000001800022f0	0x000022f0	21 (0x15)	
                                    private: char const * __ptr64 __cdecl CInt64MathParser::CalcToObr(void) __ptr64	0x0000000180002730	0x00002730	23 (0x17)	
                                    private: char const * __ptr64 __cdecl CInt64MathParser::ParseFormula(bool) __ptr64	0x0000000180001a00	0x00001a00	48 (0x30)	
                                    private: char const * __ptr64 __cdecl CInt64MathParser::PrepareFormula(void) __ptr64	0x00000001800018a0	0x000018a0	50 (0x32)	
                                    private: char const * __ptr64 __cdecl CMathParser::Calc(void) __ptr64	0x0000000180005220	0x00005220	22 (0x16)	
                                    private: char const * __ptr64 __cdecl CMathParser::CalcToObr(void) __ptr64	0x00000001800057d0	0x000057d0	24 (0x18)	
                                    private: char const * __ptr64 __cdecl CMathParser::ParseFormula(bool) __ptr64	0x00000001800047d0	0x000047d0	49 (0x31)	
                                    private: char const * __ptr64 __cdecl CMathParser::PrepareFormula(void) __ptr64	0x0000000180004680	0x00004680	51 (0x33)	
                                    private: static class CStaticFuncMapDouble CMathParser::DoubleFunctions	0x000000018000c812	0x0000c812	30 (0x1e)	
                                    private: static class CStaticFuncMapInt64 CInt64MathParser::IntFunctions	0x000000018000c810	0x0000c810	33 (0x21)	
                                    private: static class CSymTable CInt64MathParser::MathSymTable	0x000000018000c811	0x0000c811	40 (0x28)	
                                    private: static class CSymTable CMathParser::MathSymTable	0x000000018000c813	0x0000c813	41 (0x29)	
                                    private: static signed char const * const CInt64MathParser::OpPriorities	0x0000000180008460	0x00008460	44 (0x2c)	
                                    private: static signed char const * const CMathParser::OpPriorities	0x0000000180008560	0x00008560	45 (0x2d)	
                                    private: static struct CInt64MathParser::Operation const CInt64MathParser::BrOp	0x000000018000c098	0x0000c098	19 (0x13)	
                                    private: static struct CInt64MathParser::Operation const CInt64MathParser::CbrOp	0x000000018000c038	0x0000c038	25 (0x19)	
                                    private: static struct CInt64MathParser::Operation const CInt64MathParser::CommaOp	0x000000018000c078	0x0000c078	27 (0x1b)	
                                    private: static struct CInt64MathParser::Operation const CInt64MathParser::ItvOp	0x000000018000c058	0x0000c058	35 (0x23)	
                                    private: static struct CInt64MathParser::Operation const CInt64MathParser::NegOp	0x000000018000c0b8	0x0000c0b8	42 (0x2a)	
                                    private: static struct CMathParser::Operation const CMathParser::BrOp	0x000000018000c158	0x0000c158	20 (0x14)	
                                    private: static struct CMathParser::Operation const CMathParser::CbrOp	0x000000018000c0f8	0x0000c0f8	26 (0x1a)	
                                    private: static struct CMathParser::Operation const CMathParser::CommaOp	0x000000018000c138	0x0000c138	28 (0x1c)	
                                    private: static struct CMathParser::Operation const CMathParser::ItvOp	0x000000018000c0d8	0x0000c0d8	36 (0x24)	
                                    private: static struct CMathParser::Operation const CMathParser::NegOp	0x000000018000c118	0x0000c118	43 (0x2b)	
                                    public: __cdecl CInt64MathParser::CInt64MathParser(class CInt64MathParser const & __ptr64) __ptr64	0x00000001800013b0	0x000013b0	1 (0x1)	
                                    public: __cdecl CInt64MathParser::CInt64MathParser(void) __ptr64	0x00000001800015f0	0x000015f0	2 (0x2)	
                                    public: __cdecl CInt64MathParser::~CInt64MathParser(void) __ptr64	0x00000001800016f0	0x000016f0	6 (0x6)	
                                    public: __cdecl CMathParser::CMathParser(class CMathParser const & __ptr64) __ptr64	0x0000000180004220	0x00004220	3 (0x3)	
                                    public: __cdecl CMathParser::CMathParser(void) __ptr64	0x0000000180004350	0x00004350	4 (0x4)	
                                    public: __cdecl CMathParser::~CMathParser(void) __ptr64	0x00000001800044a0	0x000044a0	7 (0x7)	
                                    public: __cdecl CStrMap::CStrMap(int,int) __ptr64	0x0000000180005f20	0x00005f20	5 (0x5)	
                                    public: __cdecl CStrMap::~CStrMap(void) __ptr64	0x0000000180005f40	0x00005f40	8 (0x8)	
                                    public: bool __cdecl CStrMap::IsEmpty(void) __ptr64	0x0000000180001350	0x00001350	34 (0x22)	
                                    public: char const * __ptr64 __cdecl CInt64MathParser::Eval(__int64 * __ptr64) __ptr64	0x0000000180002790	0x00002790	31 (0x1f)	
                                    public: char const * __ptr64 __cdecl CInt64MathParser::Parse(char const * __ptr64,bool) __ptr64	0x0000000180001930	0x00001930	46 (0x2e)	
                                    public: char const * __ptr64 __cdecl CMathParser::Eval(double * __ptr64) __ptr64	0x0000000180005830	0x00005830	32 (0x20)	
                                    public: char const * __ptr64 __cdecl CMathParser::Parse(char const * __ptr64,bool) __ptr64	0x0000000180004700	0x00004700	47 (0x2f)	
                                    public: class CInt64MathParser & __ptr64 __cdecl CInt64MathParser::operator=(class CInt64MathParser const & __ptr64) __ptr64	0x00000001800014d0	0x000014d0	9 (0x9)	
                                    public: class CMathParser & __ptr64 __cdecl CMathParser::operator=(class CMathParser const & __ptr64) __ptr64	0x00000001800014d0	0x000014d0	10 (0xa)	
                                    public: class CStaticFuncMapDouble & __ptr64 __cdecl CStaticFuncMapDouble::operator=(class CStaticFuncMapDouble const & __ptr64) __ptr64	0x00000001800013a0	0x000013a0	12 (0xc)	
                                    public: class CStaticFuncMapInt64 & __ptr64 __cdecl CStaticFuncMapInt64::operator=(class CStaticFuncMapInt64 const & __ptr64) __ptr64	0x00000001800013a0	0x000013a0	14 (0xe)	
                                    public: class CStrMap & __ptr64 __cdecl CStrMap::operator=(class CStrMap const & __ptr64) __ptr64	0x0000000180001360	0x00001360	15 (0xf)	
                                    public: int __cdecl CStrMap::LenIndexOf(char const * __ptr64,unsigned __int64,void const * __ptr64 * __ptr64) __ptr64	0x00000001800061b0	0x000061b0	39 (0x27)	
                                    public: static int __cdecl CStaticFuncMapDouble::LenIndexOf(char const * __ptr64,unsigned __int64,void const * __ptr64 * __ptr64)	0x0000000180006440	0x00006440	37 (0x25)	
                                    public: static int __cdecl CStaticFuncMapInt64::LenIndexOf(char const * __ptr64,unsigned __int64,void const * __ptr64 * __ptr64)	0x00000001800064f0	0x000064f0	38 (0x26)	
                                    public: void __cdecl CStrMap::`default constructor closure'(void) __ptr64	0x0000000180001380	0x00001380	16 (0x10)	
                                    public: void __cdecl CStrMap::AddString(char const * __ptr64,void * __ptr64) __ptr64	0x0000000180005fd0	0x00005fd0	18 (0x12)	
                                    public: void __cdecl CStrMap::AddStrLen(char const * __ptr64,unsigned __int64,void const * __ptr64) __ptr64	0x0000000180005ff0	0x00005ff0	17 (0x11)	
                                    public: void __cdecl CStrMap::SetCapacity(int) __ptr64	0x0000000180006120	0x00006120	52 (0x34)	
                                    public: void __cdecl CStrMap::TrimClear(int) __ptr64	0x00000001800060b0	0x000060b0	53 (0x35)	
                                    public: void const * __ptr64 __cdecl CStrMap::DataAt(int) __ptr64	0x0000000180006240	0x00006240	29 (0x1d)	
                                    

                                    Voila la totalité de MathParser (53 fonctions), si je fais la somme des fonctions des dll, j'en ai, à vue d'oeil, pour plus de 1500 fonctions.

                                    >Peut-être que wrapper "API.Dll", si elle existe, serait plus simple à wrapper.

                                    L'Api possède 547 fonctions.

                                    Oui j'ai remarqué, je me suis dit que si j'arrive à comprndre pour un .lib, je pourrais plus facilement réussir avec un .dll

                                    J'ai trouvé ca pour les dll, mais est-il bien : https://nico-pyright.developpez.com/tutoriel/vc2005/interop/#Lno-IV-D ?

                                    J'ai réécrit et essayer le programme du lien https://www.red-gate.com/simple-talk/dotnet/net-development/creating-ccli-wrapper/ et par curiosité j'ai essayé de référencer mes dll, mais il m'affiche l'erreur : "Impossible d'ajouter la réf... car son type ou sa version n'est pas utilisable par le projet actif." J'essaye de le référencé au niveau du projet "Wrapper". Mes dll sont en version 3.2.0 (j'ai en Win64_x64 ou en Win32_i86).

                                    -
                                    Edité par VincentL10 4 mars 2021 à 16:35:50

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      5 mars 2021 à 1:36:38

                                      Ok, maintenant c'est clair, "MathParser.dll" n'offre qu'un API exportée avec un mangling C++.

                                      >pour plus de 1500 fonctions

                                      J'ai du mal à voir d'où viennent les près de 1000 fonctions donc vous ne mentionnez pas l'origine.

                                      Il faudrait que vous ayez une vue claire des dépendances entre librairies(.dll) pour ne pas avoir à inutilement faire des wrappers.

                                      Le but est de choisir le bon niveau d'abstraction à présenter au code utilisateur (ici, dans votre cas, le code le code utilisateur, c'est celui en C#), qui idéalement est regrouper dans une seule API d'une Dll.

                                      Ce niveau d'abstraction est fonction de ce que le code utilisateur est sensé faire avec ces fonctionnalités.

                                      Si les API sont bien faites, vous n'aurez qu'à wrapper cette API (la "bonne" dll) et ne rien faire pour les autres (dll), car le code utilisateur ne s'en servira pas.

                                      Même si une Dll exporte bon nombre de symboles, vous n'avez pas forcement à tous les wrapper.

                                      Je vous conseille de ne wrapper que les classes/fonctions qui doivent être directement appelées depuis le code utilisateur, puis ajouter les classes qui sont utilisées dans les signatures ces méthodes et fonctions, et ainsi de suite.

                                      Vous n'êtes même pas obliger de wrapper toutes les fonctions et propriétés/champs d'une classe utilisées mais uniquement celles directement utilisées par le code utilisateur. Mais si les classes de la Dll sont bien conçu il y a de grande chance que toute son API (de la classe) soit utile/utilisée.

                                      Si l'API de la Dll est bien conçu, cet espèce de mécanisme de "chose à wrapper" qui se rependra de proche en proche, devrait rapidement se tarir avec un ensemble cohérent de chose à wrapper.

                                      En résumé, ne wrappez pas à l'avance mais uniquement ce qui vous est directement nécessaire pour votre projet C#. Il sera toujours facile plus tard de reprendre ce mécanisme à partir d'un nouveau cas d'utilisation et d'ajouter de nouveau wrappers (l'inverse est beaucoup plus galère).

                                      Au moins, avec une API exportée via le C++ mangling, au niveau conception des classes, vous n'avez qu'à pomper la conception de l'API de la Dll.

                                      >L'Api possède 547 fonctions.

                                      bizarre, avec un nom pareil, j'aurais misé sur une "façade" qui est une espère de simplification d'une API "complexe/riche" offerte par la dll "MathParser.dll". Mais peut-être que c'est l'inverse et que "MathParser.dll" est la "façade" d'"API.dll".

                                      Ou bien API.dll implémente une API plus "facile/chatty/utilisable/ouverte" que celle de "MathParser.dll", voire ajoute des fonctionnalités qui peuvent être nécessaires ou utiles à votre code utilisateur.

                                      Il serait donc utile que vous nous donniez les noms de ces 547 fonctions, histoire de voir si on peut encore éviter cette galère de wrapping.

                                      La documentation devrait vous aidez à comprendre les différences d'abstraction et d'utilisation de ces Dll (si les classes et fonctions qu'elles exportent ne l'indique pas assez clairement).

                                      On revient sur le fait de bien analyser le niveau d’abstraction et fonctionnalités nécessaires au code utilisateur.

                                      Je vous conseille donc d'un peu avancer dans la conception/étude du besoin coté code C#, pour bien déterminer le périmètre nécessitant un wrapping et ne pas faire de travail inutile et bien choisir la Dll à wrapper (partiellement).

                                      Si vous pigez le truc pour une lib, le passage à la Dll, c'est juste quelques détails techniques, et on pourra facilement vous aider ici, sur le forum.

                                      >J'ai trouvé ca pour les dll,

                                      Toujours intéressant à lire malgré son âge. La technologie n'a pas vraiment évoluée depuis 2007 (mais attention à ne pas prendre plus vieux car avant 2007, ça bougeait beaucoup).

                                      Malheureusement, il présente comment attaquer une Dll ayant une API exportée à la C, pas à la C++, et c'est loin d'être un détail.

                                      En lisant ces 2 articles et avec un peu de travail, vous devriez avoir une vue d'ensemble de la chose.

                                      Mais peut-être que ces articles sont un peu abrupte pour une personne avec peu d'expérience en C# et/ou en C++.

                                      Donc n'hésitez pas à poser des questions sur les points que vous ne comprenez pas dans ces articles.

                                      >J'ai réécrit et essayer le programme du lien

                                      GG !!!

                                      >par curiosité j'ai essayé de référencer mes dll

                                      Attention, le terme "référencer" est très souvent adossé spécifiquement à l'usage d'assemblies .NET et non à des Dll/Lib "natives", même si les assembies .NET sont stockées dans des fichiers en ".dll". Une Dll d'assembly .NET n'a pas grand-chose à voir avec une Dll "native" (comme les vôtres).

                                      Alors, si vous lui avez indiqué une Dll "native" et qu'il s'attendait à une assembly .NET, c'est normal qu'il râle un peu. ;)

                                      Cherchez plutôt, dans les options du projet, l'endroit où vous devez spécifier les .lib à utiliser pour l'édition de lien et y ajouter le nom du .lib de votre Dll.

                                      Si vous avez l'habitude d'utiliser des librairies en C++ "standard", un projet C++/CLI fonctionne de la même manière sur cet aspect.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                        5 mars 2021 à 10:47:04

                                        ??0CFeatureBag@Api_3_2@@QEAA@$$QEAV01@@Z	0x000000018006b440	0x0006b440	27 (0x1b)	
                                        ??4CFeatureBag@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x000000018006b4c0	0x0006b4c0	108 (0x6c)	
                                        ??4const_iterator@CFeatureBagger@Api_3_2@@QEAAAEAV012@$$QEAV012@@Z	0x0000000180001690	0x00001690	143 (0x8f)	
                                        ??4const_iterator@node_vector@Api_3_2@@QEAAAEAV012@$$QEAV012@@Z	0x0000000180001690	0x00001690	145 (0x91)	
                                        ??4const_iterator@value_vector@Api_3_2@@QEAAAEAV012@$$QEAV012@@Z	0x0000000180001690	0x00001690	147 (0x93)	
                                        ??4EAccessModeClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	117 (0x75)	
                                        ??4ECachingModeClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	119 (0x77)	
                                        ??4EDisplayNotationClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	121 (0x79)	
                                        ??4EEndianessClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	123 (0x7b)	
                                        ??4EApiSchemaVersionClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	125 (0x7d)	
                                        ??4EInputDirectionClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	127 (0x7f)	
                                        ??4ENameSpaceClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	129 (0x81)	
                                        ??4ERepresentationClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	131 (0x83)	
                                        ??4ESignClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	133 (0x85)	
                                        ??4ESlopeClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	135 (0x87)	
                                        ??4EStandardNameSpaceClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	137 (0x89)	
                                        ??4EVisibilityClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	139 (0x8b)	
                                        ??4EYesNoClass@Api_3_2@@QEAAAEAV01@$$QEAV01@@Z	0x0000000180001710	0x00001710	141 (0x8d)	
                                        ??4iterator@node_vector@Api_3_2@@QEAAAEAV012@$$QEAV012@@Z	0x0000000180001690	0x00001690	151 (0x97)	
                                        ??4iterator@value_vector@Api_3_2@@QEAAAEAV012@$$QEAV012@@Z	0x0000000180001690	0x00001690	153 (0x99)	
                                        bool __cdecl Api_3_2::String2Value(char const * __ptr64,__int64 * __ptr64,enum Api_3_2::_ERepresentation)	0x000000018007adb0	0x0007adb0	433 (0x1b1)	
                                        bool __cdecl Api_3_2::String2Value(class GIC_3_2::gcstring const & __ptr64,bool * __ptr64)	0x000000018007a9f0	0x0007a9f0	432 (0x1b0)	
                                        bool __cdecl Api_3_2::String2Value(class GIC_3_2::gcstring const & __ptr64,class Api_3_2::CBooleanPolyRef * __ptr64)	0x000000018007ac00	0x0007ac00	428 (0x1ac)	
                                        bool __cdecl Api_3_2::String2Value(class GIC_3_2::gcstring const & __ptr64,class Api_3_2::CFloatPolyRef * __ptr64)	0x000000018007ac50	0x0007ac50	429 (0x1ad)	
                                        bool __cdecl Api_3_2::String2Value(class GIC_3_2::gcstring const & __ptr64,class Api_3_2::CIntegerPolyRef * __ptr64)	0x000000018007abb0	0x0007abb0	430 (0x1ae)	
                                        bool __cdecl Api_3_2::String2Value(class GIC_3_2::gcstring const & __ptr64,class Api_3_2::CStringPolyRef * __ptr64)	0x000000018007ad80	0x0007ad80	431 (0x1af)	
                                        bool __cdecl Api_3_2::String2Value(class GIC_3_2::gcstring const & __ptr64,struct _GUID * __ptr64)	0x000000018007a440	0x0007a440	427 (0x1ab)	
                                        bool __cdecl Api_3_2::String2Value(class GIC_3_2::gcstring const & __ptr64,unsigned char * __ptr64,__int64)	0x000000018007a910	0x0007a910	426 (0x1aa)	
                                        class Api_3_2::node_vector::const_iterator __cdecl Api_3_2::operator+(__int64,class Api_3_2::node_vector::const_iterator const & __ptr64)	0x0000000180008270	0x00008270	210 (0xd2)	
                                        class Api_3_2::node_vector::iterator __cdecl Api_3_2::operator+(__int64,class Api_3_2::node_vector::iterator const & __ptr64)	0x0000000180008270	0x00008270	212 (0xd4)	
                                        class Api_3_2::value_vector::const_iterator __cdecl Api_3_2::operator+(__int64,class Api_3_2::value_vector::const_iterator const & __ptr64)	0x0000000180008270	0x00008270	211 (0xd3)	
                                        class Api_3_2::value_vector::iterator __cdecl Api_3_2::operator+(__int64,class Api_3_2::value_vector::iterator const & __ptr64)	0x0000000180008270	0x00008270	213 (0xd5)	
                                        const Api_3_2::CChunkAdapter::`vftable'	0x0000000180086110	0x00086110	244 (0xf4)	
                                        const Api_3_2::CChunkAdapterDcam::`vftable'	0x0000000180086480	0x00086480	245 (0xf5)	
                                        const Api_3_2::CChunkAdapterGenDC::`vftable'	0x00000001800865e0	0x000865e0	247 (0xf7)	
                                        const Api_3_2::CChunkAdapterGeneric::`vftable'	0x0000000180086600	0x00086600	248 (0xf8)	
                                        const Api_3_2::CChunkAdapterGEV::`vftable'	0x00000001800864a0	0x000864a0	246 (0xf6)	
                                        const Api_3_2::CChunkAdapterU3V::`vftable'	0x00000001800865c0	0x000865c0	249 (0xf9)	
                                        const Api_3_2::CChunkPort::`vbtable'{for `Api_3_2::IPort'}	0x0000000180086100	0x00086100	273 (0x111)	
                                        const Api_3_2::CChunkPort::`vbtable'{for `Api_3_2::IPortConstruct'}	0x00000001800860f0	0x000860f0	274 (0x112)	
                                        const Api_3_2::CChunkPort::`vftable'	0x00000001800860d0	0x000860d0	250 (0xfa)	
                                        const Api_3_2::CChunkPort::`vftable'{for `Api_3_2::IBase'}	0x0000000180086090	0x00086090	251 (0xfb)	
                                        const Api_3_2::CChunkPort::`vftable'{for `Api_3_2::IPort'}	0x00000001800860b8	0x000860b8	252 (0xfc)	
                                        const Api_3_2::CEventAdapter1394::`vftable'	0x0000000180088108	0x00088108	253 (0xfd)	
                                        const Api_3_2::CEventAdapter::`vftable'	0x00000001800880b0	0x000880b0	254 (0xfe)	
                                        const Api_3_2::CEventAdapterCL::`vftable'	0x0000000180088488	0x00088488	255 (0xff)	
                                        const Api_3_2::CEventAdapterGeneric::`vftable'	0x0000000180088590	0x00088590	257 (0x101)	
                                        const Api_3_2::CEventAdapterGEV::`vftable'	0x00000001800882f0	0x000882f0	256 (0x100)	
                                        const Api_3_2::CEventAdapterU3V::`vftable'	0x0000000180088460	0x00088460	258 (0x102)	
                                        const Api_3_2::CEventPort::`vbtable'{for `GenApi_3_2::IPort'}	0x0000000180086100	0x00086100	275 (0x113)	
                                        const Api_3_2::CEventPort::`vbtable'{for `GenApi_3_2::IPortConstruct'}	0x0000000180088098	0x00088098	276 (0x114)	
                                        const Api_3_2::CEventPort::`vftable'	0x0000000180088078	0x00088078	259 (0x103)	
                                        const Api_3_2::CEventPort::`vftable'{for `GenApi_3_2::IBase'}	0x00000001800880d8	0x000880d8	260 (0x104)	
                                        const Api_3_2::CEventPort::`vftable'{for `Api_3_2::IPort'}	0x00000001800880f0	0x000880f0	261 (0x105)	
                                        const Api_3_2::CFeatureBag::`vftable'	0x00000001800a5f70	0x000a5f70	262 (0x106)	
                                        const Api_3_2::CFeatureBagger::`vftable'	0x00000001800a5fa0	0x000a5fa0	263 (0x107)	
                                        const Api_3_2::CNodeMapFactory::`vftable'	0x000000018009e578	0x0009e578	264 (0x108)	
                                        const Api_3_2::CNodeWriteConcatenator::`vftable'	0x0000000180084ff0	0x00084ff0	265 (0x109)	
                                        const Api_3_2::CPortWriteList::`vftable'	0x00000001800a6638	0x000a6638	266 (0x10a)	
                                        const Api_3_2::CSelectorSet::`vftable'	0x00000001800a5fd8	0x000a5fd8	267 (0x10b)	
                                        const Api_3_2::double_autovector_t::`vftable'	0x0000000180084e40	0x00084e40	269 (0x10d)	
                                        const Api_3_2::FileProtocolAdapter::`vftable'	0x0000000180088ab0	0x00088ab0	268 (0x10c)	
                                        const Api_3_2::int64_autovector_t::`vftable'	0x0000000180084e30	0x00084e30	270 (0x10e)	
                                        const Api_3_2::node_vector::`vftable'	0x0000000180085d58	0x00085d58	271 (0x10f)	
                                        const Api_3_2::value_vector::`vftable'	0x0000000180085e28	0x00085e28	272 (0x110)	
                                        private: __int64 __cdecl Api_3_2::CFeatureBag::StoreToBagInternal(struct Api_3_2::INodeMap * __ptr64,int,class GIC_3_2::gcstring_vector * __ptr64) __ptr64	0x000000018006c6a0	0x0006c6a0	425 (0x1a9)	
                                        private: bool __cdecl Api_3_2::CFeatureBag::LoadFromBagInternal(struct Api_3_2::INodeMap * __ptr64,bool,class GIC_3_2::gcstring_vector * __ptr64) __ptr64	0x000000018006b880	0x0006b880	402 (0x192)	
                                        private: class Api_3_2::CFeatureBag & __ptr64 __cdecl Api_3_2::CFeatureBagger::AddBag(class GIC_3_2::gcstring const & __ptr64) __ptr64	0x000000018006d560	0x0006d560	298 (0x12a)	
                                        private: void __cdecl Api_3_2::CEventAdapterGEV::AttachItemToPorts(unsigned char const * __ptr64,unsigned short,unsigned int) __ptr64	0x0000000180016a90	0x00016a90	309 (0x135)	
                                        private: void __cdecl Api_3_2::CEventAdapterGEV::DeliverEventItem(struct Api_3_2::GVCP_EVENT_ITEM_BASIC const * __ptr64,unsigned int) __ptr64	0x00000001800169b0	0x000169b0	336 (0x150)	
                                        private: void __cdecl Api_3_2::CEventPort::ResetEventDataBuffer(void) __ptr64	0x0000000180018cc0	0x00018cc0	411 (0x19b)	
                                        private: void __cdecl Api_3_2::CFeatureBagger::DeleteAllBags(void) __ptr64	0x000000018006d420	0x0006d420	334 (0x14e)	
                                        private: void __cdecl Api_3_2::CSelectorSet::Create(struct Api_3_2::IBase * __ptr64) __ptr64	0x0000000180075980	0x00075980	329 (0x149)	
                                        private: void __cdecl Api_3_2::CSelectorSet::ExploreSelector(class Api_3_2::CPointer<struct Api_3_2::INode,struct Api_3_2::IBase> & __ptr64,class Api_3_2::node_vector & __ptr64) __ptr64	0x00000001800753f0	0x000753f0	359 (0x167)	
                                        private: void __cdecl Api_3_2::FileProtocolAdapter::WaitUntilFileOperationExecuteDone(bool) __ptr64	0x000000018001ab10	0x0001ab10	476 (0x1dc)	
                                        protected: __cdecl Api_3_2::CChunkAdapter::CChunkAdapter(struct Api_3_2::INodeMap * __ptr64,__int64) __ptr64	0x0000000180009450	0x00009450	1 (0x1)	
                                        protected: bool __cdecl Api_3_2::CChunkAdapterDcam::CheckBuffer(unsigned char const * __ptr64,unsigned int) __ptr64	0x000000018000a710	0x0000a710	316 (0x13c)	
                                        protected: class Api_3_2::CLock & __ptr64 __cdecl Api_3_2::CChunkPort::GetLock(void)const __ptr64	0x0000000180008fa0	0x00008fa0	381 (0x17d)	
                                        protected: class Api_3_2::CLock & __ptr64 __cdecl Api_3_2::CEventPort::GetLock(void)const __ptr64	0x0000000180018c20	0x00018c20	382 (0x17e)	
                                        protected: unsigned int __cdecl Api_3_2::CChunkAdapterDcam::CRC16(unsigned char const * __ptr64,unsigned int) __ptr64	0x000000018000a4d0	0x0000a4d0	315 (0x13b)	
                                        protected: virtual __cdecl Api_3_2::CNodeWriteConcatenator::~CNodeWriteConcatenator(void) __ptr64	0x0000000180004980	0x00004980	83 (0x53)	
                                        public: __cdecl Api_3_2::CChunkAdapter::CChunkAdapter(class Api_3_2::CChunkAdapter const & __ptr64) __ptr64	0x0000000180009330	0x00009330	2 (0x2)	
                                        public: __cdecl Api_3_2::CChunkAdapterDcam::CChunkAdapterDcam(class Api_3_2::CChunkAdapterDcam const & __ptr64) __ptr64	0x0000000180009d10	0x00009d10	3 (0x3)	
                                        public: __cdecl Api_3_2::CChunkAdapterDcam::CChunkAdapterDcam(struct Api_3_2::INodeMap * __ptr64,__int64) __ptr64	0x0000000180009e90	0x00009e90	4 (0x4)	
                                        public: __cdecl Api_3_2::CChunkAdapterGenDC::CChunkAdapterGenDC(struct Api_3_2::INodeMap * __ptr64,__int64) __ptr64	0x000000018000b8c0	0x0000b8c0	7 (0x7)	
                                        public: __cdecl npi_3_2::CChunkAdapterGeneric::CChunkAdapterGeneric(class Api_3_2::CChunkAdapterGeneric const & __ptr64) __ptr64	0x000000018000b930	0x0000b930	8 (0x8)	
                                        public: __cdecl Api_3_2::CChunkAdapterGeneric::CChunkAdapterGeneric(struct Api_3_2::INodeMap * __ptr64,__int64) __ptr64	0x000000018000ba60	0x0000ba60	9 (0x9)	
                                        public: __cdecl Api_3_2::CChunkAdapterGEV::CChunkAdapterGEV(class Api_3_2::CChunkAdapterGEV const & __ptr64) __ptr64	0x000000018000ad20	0x0000ad20	5 (0x5)	
                                        public: __cdecl Api_3_2::CChunkAdapterGEV::CChunkAdapterGEV(struct Api_3_2::INodeMap * __ptr64,__int64) __ptr64	0x000000018000ae50	0x0000ae50	6 (0x6)	
                                        public: __cdecl Api_3_2::CChunkAdapterU3V::CChunkAdapterU3V(class Api_3_2::CChunkAdapterU3V const & __ptr64) __ptr64	0x000000018000b2f0	0x0000b2f0	10 (0xa)	
                                        public: __cdecl Api_3_2::CChunkAdapterU3V::CChunkAdapterU3V(struct Api_3_2::INodeMap * __ptr64,__int64) __ptr64	0x000000018000b420	0x0000b420	11 (0xb)	
                                        public: __cdecl Api_3_2::CChunkPort::CChunkPort(class Api_3_2::CChunkPort const & __ptr64) __ptr64	0x0000000180009040	0x00009040	12 (0xc)	
                                        public: __cdecl Api_3_2::CChunkPort::CChunkPort(struct Api_3_2::IPort * __ptr64) __ptr64	0x000000018000c360	0x0000c360	13 (0xd)	
                                        public: __cdecl Api_3_2::CEventAdapter1394::CEventAdapter1394(struct Api_3_2::INodeMap * __ptr64) __ptr64	0x0000000180015e60	0x00015e60	14 (0xe)	
                                        public: __cdecl Api_3_2::CEventAdapter::CEventAdapter(class Api_3_2::CEventAdapter const & __ptr64) __ptr64	0x00000001800157c0	0x000157c0	15 (0xf)	
                                        public: __cdecl Api_3_2::CEventAdapter::CEventAdapter(struct Api_3_2::INodeMap * __ptr64) __ptr64	0x00000001800158d0	0x000158d0	16 (0x10)	
                                        public: __cdecl Api_3_2::CEventAdapterCL::CEventAdapterCL(class Api_3_2::CEventAdapterCL const & __ptr64) __ptr64	0x0000000180017240	0x00017240	17 (0x11)	
                                        public: __cdecl Api_3_2::CEventAdapterCL::CEventAdapterCL(struct Api_3_2::INodeMap * __ptr64) __ptr64	0x0000000180017340	0x00017340	18 (0x12)	
                                        public: __cdecl Api_3_2::CEventAdapterGeneric::CEventAdapterGeneric(class Api_3_2::CEventAdapterGeneric const & __ptr64) __ptr64	0x00000001800176f0	0x000176f0	21 (0x15)	
                                        public: __cdecl Api_3_2::CEventAdapterGeneric::CEventAdapterGeneric(struct Api_3_2::INodeMap * __ptr64) __ptr64	0x0000000180017850	0x00017850	22 (0x16)	
                                        public: __cdecl Api_3_2::CEventAdapterGEV::CEventAdapterGEV(class Api_3_2::CEventAdapterGEV const & __ptr64) __ptr64	0x00000001800162f0	0x000162f0	19 (0x13)	
                                        public: __cdecl Api_3_2::CEventAdapterGEV::CEventAdapterGEV(struct Api_3_2::INodeMap * __ptr64) __ptr64	0x00000001800163f0	0x000163f0	20 (0x14)	
                                        public: __cdecl Api_3_2::CEventAdapterU3V::CEventAdapterU3V(class Api_3_2::CEventAdapterU3V const & __ptr64) __ptr64	0x0000000180016e10	0x00016e10	23 (0x17)	
                                        public: __cdecl Api_3_2::CEventAdapterU3V::CEventAdapterU3V(struct Api_3_2::INodeMap * __ptr64) __ptr64	0x0000000180016f10	0x00016f10	24 (0x18)	
                                        public: __cdecl Api_3_2::CEventPort::CEventPort(class Api_3_2::CEventPort const & __ptr64) __ptr64	0x0000000180015560	0x00015560	25 (0x19)	
                                        public: __cdecl Api_3_2::CEventPort::CEventPort(struct Api_3_2::INode * __ptr64) __ptr64	0x0000000180017c50	0x00017c50	26 (0x1a)	
                                        public: __cdecl Api_3_2::CFeatureBag::CFeatureBag(class Api_3_2::CFeatureBag const & __ptr64) __ptr64	0x000000018006b440	0x0006b440	28 (0x1c)	
                                        public: __cdecl Api_3_2::CFeatureBag::CFeatureBag(void) __ptr64	0x000000018006b3a0	0x0006b3a0	29 (0x1d)	
                                        public: __cdecl npi_3_2::CFeatureBag::~CFeatureBag(void) __ptr64	0x000000018006b400	0x0006b400	78 (0x4e)	
                                        public: __cdecl Api_3_2::CFeatureBagger::CFeatureBagger(class Api_3_2::CFeatureBagger const & __ptr64) __ptr64	0x000000018006b520	0x0006b520	30 (0x1e)	
                                        public: __cdecl Api_3_2::CFeatureBagger::CFeatureBagger(void) __ptr64	0x000000018006d310	0x0006d310	31 (0x1f)	
                                        public: __cdecl Api_3_2::CFeatureBagger::const_iterator::const_iterator(class Api_3_2::CFeatureBag * __ptr64 * __ptr64) __ptr64	0x0000000180001730	0x00001730	47 (0x2f)	
                                        public: __cdecl Api_3_2::CLock::CLock(void) __ptr64	0x0000000180079a90	0x00079a90	32 (0x20)	
                                        public: __cdecl Api_3_2::CLock::~CLock(void) __ptr64	0x0000000180001010	0x00001010	80 (0x50)	
                                        public: __cdecl Api_3_2::CLockEx::~CLockEx(void) __ptr64	0x0000000180001010	0x00001010	81 (0x51)	
                                        public: __cdecl Api_3_2::CNodeMapFactory::CNodeMapFactory(class Api_3_2::CNodeMapFactory const & __ptr64) __ptr64	0x0000000180041830	0x00041830	33 (0x21)	
                                        public: __cdecl Api_3_2::CNodeMapFactory::CNodeMapFactory(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::ECacheUsage_t,bool) __ptr64	0x0000000180041b20	0x00041b20	34 (0x22)	
                                        public: __cdecl Api_3_2::CNodeMapFactory::CNodeMapFactory(enum Api_3_2::EContentType_t,class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::ECacheUsage_t,bool) __ptr64	0x0000000180041890	0x00041890	35 (0x23)	
                                        public: __cdecl Api_3_2::CNodeMapFactory::CNodeMapFactory(enum GenApi_3_2::EContentType_t,void const * __ptr64,unsigned __int64,enum Api_3_2::ECacheUsage_t,bool) __ptr64	0x00000001800419b0	0x000419b0	36 (0x24)	
                                        public: __cdecl Api_3_2::CNodeMapFactory::CNodeMapFactory(void) __ptr64	0x00000001800417c0	0x000417c0	37 (0x25)	
                                        public: __cdecl Api_3_2::CNodeWriteConcatenator::CNodeWriteConcatenator(class Api_3_2::CNodeWriteConcatenator const & __ptr64) __ptr64	0x0000000180001700	0x00001700	38 (0x26)	
                                        public: __cdecl Api_3_2::CNodeWriteConcatenator::CNodeWriteConcatenator(void) __ptr64	0x0000000180001700	0x00001700	39 (0x27)	
                                        public: __cdecl Api_3_2::CNodeWriteConcatenatorRef::CNodeWriteConcatenatorRef(class GenApi_3_2::CNodeWriteConcatenator * __ptr64) __ptr64	0x0000000180001730	0x00001730	40 (0x28)	
                                        public: __cdecl Api_3_2::CNodeWriteConcatenatorRef::CNodeWriteConcatenatorRef(void) __ptr64	0x0000000180001720	0x00001720	41 (0x29)	
                                        public: __cdecl Api_3_2::CNodeWriteConcatenatorRef::operator class Api_3_2::CNodeWriteConcatenator * __ptr64(void)const __ptr64	0x0000000180001df0	0x00001df0	176 (0xb0)	
                                        public: __cdecl Api_3_2::CNodeWriteConcatenatorRef::~CNodeWriteConcatenatorRef(void) __ptr64	0x0000000180001740	0x00001740	84 (0x54)	
                                        public: __cdecl Api_3_2::CPortWriteList::CPortWriteList(class Api_3_2::CPortWriteList const & __ptr64) __ptr64	0x00000001800718d0	0x000718d0	42 (0x2a)	
                                        public: __cdecl Api_3_2::CPortWriteList::CPortWriteList(void) __ptr64	0x00000001800718f0	0x000718f0	43 (0x2b)	
                                        public: __cdecl Api_3_2::CPortWriteList::~CPortWriteList(void) __ptr64	0x0000000180071960	0x00071960	85 (0x55)	
                                        public: __cdecl Api_3_2::CSelectorSet::CSelectorSet(class Api_3_2::CSelectorSet const & __ptr64) __ptr64	0x000000018006b2e0	0x0006b2e0	44 (0x2c)	
                                        public: __cdecl Api_3_2::CSelectorSet::CSelectorSet(struct Api_3_2::IBase * __ptr64) __ptr64	0x0000000180074de0	0x00074de0	45 (0x2d)	
                                        public: __cdecl Api_3_2::double_autovector_t::double_autovector_t(class Api_3_2::double_autovector_t const & __ptr64) __ptr64	0x0000000180001460	0x00001460	50 (0x32)	
                                        public: __cdecl Api_3_2::double_autovector_t::double_autovector_t(unsigned __int64) __ptr64	0x0000000180001490	0x00001490	52 (0x34)	
                                        public: __cdecl Api_3_2::double_autovector_t::double_autovector_t(void) __ptr64	0x0000000180001410	0x00001410	51 (0x33)	
                                        public: __cdecl Api_3_2::FileProtocolAdapter::FileProtocolAdapter(void) __ptr64	0x00000001800190f0	0x000190f0	46 (0x2e)	
                                        public: __cdecl Api_3_2::int64_autovector_t::int64_autovector_t(class GenApi_3_2::int64_autovector_t const & __ptr64) __ptr64	0x0000000180001210	0x00001210	53 (0x35)	
                                        public: __cdecl Api_3_2::int64_autovector_t::int64_autovector_t(unsigned __int64) __ptr64	0x0000000180001240	0x00001240	55 (0x37)	
                                        public: __cdecl Api_3_2::int64_autovector_t::int64_autovector_t(void) __ptr64	0x00000001800011c0	0x000011c0	54 (0x36)	
                                        public: __cdecl Api_3_2::node_vector::const_iterator::const_iterator(struct Api_3_2::INode * __ptr64 * __ptr64) __ptr64	0x0000000180001730	0x00001730	48 (0x30)	
                                        public: __cdecl Api_3_2::node_vector::iterator::iterator(struct Api_3_2::INode * __ptr64 * __ptr64) __ptr64	0x0000000180001730	0x00001730	56 (0x38)	
                                        public: __cdecl Api_3_2::node_vector::node_vector(class Api_3_2::node_vector const & __ptr64) __ptr64	0x00000001800079e0	0x000079e0	58 (0x3a)	
                                        public: __cdecl Api_3_2::node_vector::node_vector(unsigned __int64) __ptr64	0x0000000180007980	0x00007980	60 (0x3c)	
                                        public: __cdecl Api_3_2::node_vector::node_vector(void) __ptr64	0x0000000180007940	0x00007940	59 (0x3b)	
                                        public: __cdecl Api_3_2::value_vector::const_iterator::const_iterator(struct Api_3_2::IValue * __ptr64 * __ptr64) __ptr64	0x0000000180001730	0x00001730	49 (0x31)	
                                        public: __cdecl Api_3_2::value_vector::iterator::iterator(struct Api_3_2::IValue * __ptr64 * __ptr64) __ptr64	0x0000000180001730	0x00001730	57 (0x39)	
                                        public: __cdecl Api_3_2::value_vector::value_vector(class Api_3_2::value_vector const & __ptr64) __ptr64	0x0000000180008380	0x00008380	61 (0x3d)	
                                        public: __cdecl Api_3_2::value_vector::value_vector(unsigned __int64) __ptr64	0x0000000180008320	0x00008320	63 (0x3f)	
                                        public: __cdecl Api_3_2::value_vector::value_vector(void) __ptr64	0x00000001800082e0	0x000082e0	62 (0x3e)	
                                        public: __int64 & __ptr64 __cdecl Api_3_2::int64_autovector_t::operator[](unsigned __int64) __ptr64	0x00000001800013e0	0x000013e0	168 (0xa8)	
                                        public: __int64 __cdecl Api_3_2::CFeatureBag::StoreToBag(struct Api_3_2::INodeMap * __ptr64,int,class GIC_3_2::gcstring_vector * __ptr64) __ptr64	0x000000018006c480	0x0006c480	424 (0x1a8)	
                                        public: __int64 __cdecl Api_3_2::CFeatureBagger::const_iterator::operator-(class Api_3_2::CFeatureBagger::const_iterator const & __ptr64)const __ptr64	0x0000000180008250	0x00008250	201 (0xc9)	
                                        public: __int64 __cdecl Api_3_2::CLockEx::GetLockCount(void) __ptr64	0x0000000180079af0	0x00079af0	383 (0x17f)	
                                        public: __int64 __cdecl Api_3_2::CLockEx::GetRecursionCount(void) __ptr64	0x0000000180079b00	0x00079b00	387 (0x183)	
                                        public: __int64 __cdecl Api_3_2::node_vector::const_iterator::operator-(class Api_3_2::node_vector::const_iterator const & __ptr64)const __ptr64	0x0000000180008250	0x00008250	203 (0xcb)	
                                        public: __int64 __cdecl Api_3_2::node_vector::iterator::operator-(class Api_3_2::node_vector::iterator const & __ptr64)const __ptr64	0x0000000180008250	0x00008250	207 (0xcf)	
                                        public: __int64 __cdecl Api_3_2::value_vector::const_iterator::operator-(class Api_3_2::value_vector::const_iterator const & __ptr64)const __ptr64	0x0000000180008250	0x00008250	205 (0xcd)	
                                        public: __int64 __cdecl Api_3_2::value_vector::iterator::operator-(class Api_3_2::value_vector::iterator const & __ptr64)const __ptr64	0x0000000180008250	0x00008250	209 (0xd1)	
                                        public: __int64 const & __ptr64 __cdecl Api_3_2::int64_autovector_t::operator[](unsigned __int64)const __ptr64	0x00000001800013e0	0x000013e0	169 (0xa9)	
                                        public: bool __cdecl Api_3_2::CChunkAdapterDcam::CheckCRC(unsigned char * __ptr64,__int64) __ptr64	0x000000018000a750	0x0000a750	321 (0x141)	
                                        public: bool __cdecl Api_3_2::CChunkAdapterDcam::HasCRC(unsigned char * __ptr64,__int64) __ptr64	0x000000018000a3d0	0x0000a3d0	392 (0x188)	
                                        public: bool __cdecl Api_3_2::CChunkPort::AttachPort(struct GenApi_3_2::IPort * __ptr64) __ptr64	0x000000018000cca0	0x0000cca0	313 (0x139)	
                                        public: bool __cdecl Api_3_2::CChunkPort::CheckChunkID(unsigned __int64) __ptr64	0x000000018000d1e0	0x0000d1e0	323 (0x143)	
                                        public: bool __cdecl Api_3_2::CChunkPort::CheckChunkID(unsigned char * __ptr64,int) __ptr64	0x000000018000d150	0x0000d150	322 (0x142)	
                                        public: bool __cdecl Api_3_2::CEventPort::AttachNode(struct GenApi_3_2::INode * __ptr64) __ptr64	0x0000000180018450	0x00018450	310 (0x136)	
                                        public: bool __cdecl Api_3_2::CEventPort::CheckEventID(unsigned __int64)const __ptr64	0x0000000180018920	0x00018920	325 (0x145)	
                                        public: bool __cdecl Api_3_2::CEventPort::CheckEventID(unsigned char * __ptr64,int)const __ptr64	0x0000000180018890	0x00018890	324 (0x144)	
                                        public: bool __cdecl Api_3_2::CFeatureBag::LoadFromBag(struct Api_3_2::INodeMap * __ptr64,bool,class GIC_3_2::gcstring_vector * __ptr64) __ptr64	0x000000018006b820	0x0006b820	401 (0x191)	
                                        public: bool __cdecl Api_3_2::CFeatureBag::operator==(class Api_3_2::CFeatureBag const & __ptr64)const __ptr64	0x000000018006cf40	0x0006cf40	157 (0x9d)	
                                        public: bool __cdecl Api_3_2::CFeatureBagger::const_iterator::operator!=(class Api_3_2::CFeatureBagger::const_iterator const & __ptr64)const __ptr64	0x0000000180008290	0x00008290	161 (0xa1)	
                                        public: bool __cdecl Api_3_2::CFeatureBagger::const_iterator::operator==(class Api_3_2::CFeatureBagger::const_iterator const & __ptr64)const __ptr64	0x0000000180008280	0x00008280	158 (0x9e)	
                                        public: bool __cdecl Api_3_2::CFeatureBagger::UnBag(struct Api_3_2::INodeMap * __ptr64,bool,class GIC_3_2::gcstring_vector * __ptr64) __ptr64	0x000000018006e530	0x0006e530	465 (0x1d1)	
                                        public: bool __cdecl Api_3_2::CLock::TryLock(void) __ptr64	0x0000000180079ab0	0x00079ab0	464 (0x1d0)	
                                        public: bool __cdecl Api_3_2::CNodeMapFactory::IsCameraDescriptionFileDataReleased(void)const __ptr64	0x0000000180041e00	0x00041e00	395 (0x18b)	
                                        public: bool __cdecl Api_3_2::CNodeMapFactory::IsEmpty(void)const __ptr64	0x0000000180041c30	0x00041c30	396 (0x18c)	
                                        public: bool __cdecl Api_3_2::CNodeMapFactory::IsLoaded(void)const __ptr64	0x0000000180041d70	0x00041d70	398 (0x18e)	
                                        public: bool __cdecl Api_3_2::CNodeMapFactory::IsPreprocessed(void)const __ptr64	0x0000000180041de0	0x00041de0	399 (0x18f)	
                                        public: bool __cdecl Api_3_2::CSelectorSet::IsEmpty(void) __ptr64	0x00000001800080c0	0x000080c0	397 (0x18d)	
                                        public: bool __cdecl Api_3_2::node_vector::const_iterator::operator!=(class Api_3_2::node_vector::const_iterator const & __ptr64)const __ptr64	0x0000000180008290	0x00008290	162 (0xa2)	
                                        public: bool __cdecl Api_3_2::node_vector::const_iterator::operator<(class Api_3_2::node_vector::const_iterator const & __ptr64)const __ptr64	0x00000001800082a0	0x000082a0	219 (0xdb)	
                                        public: bool __cdecl Api_3_2::node_vector::const_iterator::operator<=(class Api_3_2::node_vector::const_iterator const & __ptr64)const __ptr64	0x00000001800082c0	0x000082c0	221 (0xdd)	
                                        public: bool __cdecl Api_3_2::node_vector::const_iterator::operator==(class Api_3_2::node_vector::const_iterator const & __ptr64)const __ptr64	0x0000000180008280	0x00008280	159 (0x9f)	
                                        public: bool __cdecl Api_3_2::node_vector::const_iterator::operator>(class Api_3_2::node_vector::const_iterator const & __ptr64)const __ptr64	0x00000001800082b0	0x000082b0	223 (0xdf)	
                                        public: bool __cdecl Api_3_2::node_vector::const_iterator::operator>=(class Api_3_2::node_vector::const_iterator const & __ptr64)const __ptr64	0x00000001800082d0	0x000082d0	225 (0xe1)	
                                        public: bool __cdecl Api_3_2::value_vector::const_iterator::operator!=(class Api_3_2::value_vector::const_iterator const & __ptr64)const __ptr64	0x0000000180008290	0x00008290	163 (0xa3)	
                                        public: bool __cdecl Api_3_2::value_vector::const_iterator::operator<(class Api_3_2::value_vector::const_iterator const & __ptr64)const __ptr64	0x00000001800082a0	0x000082a0	220 (0xdc)	
                                        public: bool __cdecl Api_3_2::value_vector::const_iterator::operator<=(class Api_3_2::value_vector::const_iterator const & __ptr64)const __ptr64	0x00000001800082c0	0x000082c0	222 (0xde)	
                                        public: bool __cdecl Api_3_2::value_vector::const_iterator::operator==(class Api_3_2::value_vector::const_iterator const & __ptr64)const __ptr64	0x0000000180008280	0x00008280	160 (0xa0)	
                                        public: bool __cdecl Api_3_2::value_vector::const_iterator::operator>(class Api_3_2::value_vector::const_iterator const & __ptr64)const __ptr64	0x00000001800082b0	0x000082b0	224 (0xe0)	
                                        public: bool __cdecl Api_3_2::value_vector::const_iterator::operator>=(class Api_3_2::value_vector::const_iterator const & __ptr64)const __ptr64	0x00000001800082d0	0x000082d0	226 (0xe2)	
                                        public: class Api_3_2::CChunkAdapter & __ptr64 __cdecl Api_3_2::CChunkAdapter::operator=(class Api_3_2::CChunkAdapter const & __ptr64) __ptr64	0x0000000180009350	0x00009350	96 (0x60)	
                                        public: class Api_3_2::CChunkAdapterDcam & __ptr64 __cdecl Api_3_2::CChunkAdapterDcam::operator=(class Api_3_2::CChunkAdapterDcam const & __ptr64) __ptr64	0x0000000180009350	0x00009350	97 (0x61)	
                                        public: class Api_3_2::CChunkAdapterGeneric & __ptr64 __cdecl Api_3_2::CChunkAdapterGeneric::operator=(class Api_3_2::CChunkAdapterGeneric const & __ptr64) __ptr64	0x0000000180009350	0x00009350	99 (0x63)	
                                        public: class Api_3_2::CChunkAdapterGEV & __ptr64 __cdecl Api_3_2::CChunkAdapterGEV::operator=(class Api_3_2::CChunkAdapterGEV const & __ptr64) __ptr64	0x0000000180009350	0x00009350	98 (0x62)	
                                        public: class Api_3_2::CChunkAdapterU3V & __ptr64 __cdecl Api_3_2::CChunkAdapterU3V::operator=(class Api_3_2::CChunkAdapterU3V const & __ptr64) __ptr64	0x0000000180009350	0x00009350	100 (0x64)	
                                        public: class Api_3_2::CChunkPort & __ptr64 __cdecl Api_3_2::CChunkPort::operator=(class Api_3_2::CChunkPort const & __ptr64) __ptr64	0x0000000180009180	0x00009180	101 (0x65)	
                                        public: class Api_3_2::CEventAdapter & __ptr64 __cdecl Api_3_2::CEventAdapter::operator=(class Api_3_2::CEventAdapter const & __ptr64) __ptr64	0x00000001800157e0	0x000157e0	102 (0x66)	
                                        public: class Api_3_2::CEventAdapterCL & __ptr64 __cdecl Api_3_2::CEventAdapterCL::operator=(class Api_3_2::CEventAdapterCL const & __ptr64) __ptr64	0x00000001800157e0	0x000157e0	103 (0x67)	
                                        public: class Api_3_2::CEventAdapterGeneric & __ptr64 __cdecl Api_3_2::CEventAdapterGeneric::operator=(class Api_3_2::CEventAdapterGeneric const & __ptr64) __ptr64	0x0000000180017720	0x00017720	105 (0x69)	
                                        public: class Api_3_2::CEventAdapterGEV & __ptr64 __cdecl Api_3_2::CEventAdapterGEV::operator=(class Api_3_2::CEventAdapterGEV const & __ptr64) __ptr64	0x00000001800157e0	0x000157e0	104 (0x68)	
                                        public: class Api_3_2::CEventAdapterU3V & __ptr64 __cdecl Api_3_2::CEventAdapterU3V::operator=(class Api_3_2::CEventAdapterU3V const & __ptr64) __ptr64	0x00000001800157e0	0x000157e0	106 (0x6a)	
                                        public: class Api_3_2::CEventPort & __ptr64 __cdecl Api_3_2::CEventPort::operator=(class Api_3_2::CEventPort const & __ptr64) __ptr64	0x0000000180015680	0x00015680	107 (0x6b)	
                                        public: class Api_3_2::CFeatureBag & __ptr64 __cdecl Api_3_2::CFeatureBag::operator=(class Api_3_2::CFeatureBag const & __ptr64) __ptr64	0x000000018006b4c0	0x0006b4c0	109 (0x6d)	
                                        public: class Api_3_2::CFeatureBag const & __ptr64 __cdecl GenApi_3_2::CFeatureBagger::const_iterator::operator*(void)const __ptr64	0x000000018006e9a0	0x0006e9a0	178 (0xb2)	
                                        public: class Api_3_2::CFeatureBag const * __ptr64 __cdecl GenApi_3_2::CFeatureBagger::const_iterator::operator->(void)const __ptr64	0x000000018006e9a0	0x0006e9a0	177 (0xb1)	
                                        public: class Api_3_2::CFeatureBagger & __ptr64 __cdecl GenApi_3_2::CFeatureBagger::operator=(class GenApi_3_2::CFeatureBagger const & __ptr64) __ptr64	0x000000018006b560	0x0006b560	110 (0x6e)	
                                        public: class Api_3_2::CFeatureBagger::const_iterator & __ptr64 __cdecl GenApi_3_2::CFeatureBagger::const_iterator::operator++(void) __ptr64	0x00000001800081b0	0x000081b0	184 (0xb8)	
                                        public: class Api_3_2::CFeatureBagger::const_iterator & __ptr64 __cdecl GenApi_3_2::CFeatureBagger::const_iterator::operator+=(__int64) __ptr64	0x0000000180008210	0x00008210	227 (0xe3)	
                                        public: class Api_3_2::CFeatureBagger::const_iterator & __ptr64 __cdecl Api_3_2::CFeatureBagger::const_iterator::operator=(class Api_3_2::CFeatureBagger::const_iterator const & __ptr64) __ptr64	0x0000000180001690	0x00001690	144 (0x90)	
                                        public: class Api_3_2::CFeatureBagger::const_iterator __cdecl Api_3_2::CFeatureBagger::const_iterator::operator+(__int64)const __ptr64	0x0000000180008220	0x00008220	214 (0xd6)	
                                        public: class Api_3_2::CFeatureBagger::const_iterator __cdecl Api_3_2::CFeatureBagger::const_iterator::operator++(int) __ptr64	0x00000001800081c0	0x000081c0	183 (0xb7)	
                                        public: class Api_3_2::CNodeMapFactory & __ptr64 __cdecl GenApi_3_2::CNodeMapFactory::operator=(class GenApi_3_2::CNodeMapFactory const & __ptr64) __ptr64	0x0000000180041850	0x00041850	111 (0x6f)	
                                        public: class Api_3_2::CNodeMapFactory __cdecl GenApi_3_2::CNodeMapFactory::ExtractSubtree(class GenICam_3_2::gcstring const & __ptr64,bool) __ptr64	0x0000000180041d90	0x00041d90	360 (0x168)	
                                        public: class Api_3_2::CNodeWriteConcatenator & __ptr64 __cdecl GenApi_3_2::CNodeWriteConcatenator::operator=(class GenApi_3_2::CNodeWriteConcatenator const & __ptr64) __ptr64	0x0000000180001710	0x00001710	112 (0x70)	
                                        public: class Api_3_2::CNodeWriteConcatenator * __ptr64 __cdecl Api_3_2::CNodeWriteConcatenatorRef::get(void)const __ptr64	0x0000000180001e80	0x00001e80	524 (0x20c)	
                                        public: class Api_3_2::CNodeWriteConcatenator * __ptr64 __cdecl Api_3_2::CNodeWriteConcatenatorRef::Release(void) __ptr64	0x0000000180001de0	0x00001de0	408 (0x198)	
                                        public: class Api_3_2::CNodeWriteConcatenatorRef & __ptr64 __cdecl Api_3_2::CNodeWriteConcatenatorRef::operator=(class Api_3_2::CNodeWriteConcatenator * __ptr64) __ptr64	0x0000000180001e90	0x00001e90	114 (0x72)	
                                        public: class Api_3_2::CNodeWriteConcatenatorRef & __ptr64 __cdecl Api_3_2::CNodeWriteConcatenatorRef::operator=(class Api_3_2::CNodeWriteConcatenatorRef const & __ptr64) __ptr64	0x0000000180001690	0x00001690	113 (0x71)	
                                        public: class Api_3_2::CPortWriteList & __ptr64 __cdecl Api_3_2::CPortWriteList::operator=(class Api_3_2::CPortWriteList const & __ptr64) __ptr64	0x0000000180009350	0x00009350	115 (0x73)	
                                        public: class Api_3_2::CSelectorSet & __ptr64 __cdecl Api_3_2::CSelectorSet::operator=(class Api_3_2::CSelectorSet const & __ptr64) __ptr64	0x00000001800157e0	0x000157e0	116 (0x74)	
                                        public: class Api_3_2::double_autovector_t & __ptr64 __cdecl Api_3_2::double_autovector_t::operator=(class Api_3_2::double_autovector_t const & __ptr64) __ptr64	0x0000000180001370	0x00001370	149 (0x95)	
                                        public: class Api_3_2::EAccessModeClass & __ptr64 __cdecl Api_3_2::EAccessModeClass::operator=(class Api_3_2::EAccessModeClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	118 (0x76)	
                                        public: class Api_3_2::ECachingModeClass & __ptr64 __cdecl Api_3_2::ECachingModeClass::operator=(class Api_3_2::ECachingModeClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	120 (0x78)	
                                        public: class Api_3_2::EDisplayNotationClass & __ptr64 __cdecl Api_3_2::EDisplayNotationClass::operator=(class Api_3_2::EDisplayNotationClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	122 (0x7a)	
                                        public: class Api_3_2::EEndianessClass & __ptr64 __cdecl GenApi_3_2::EEndianessClass::operator=(class Api_3_2::EEndianessClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	124 (0x7c)	
                                        public: class Api_3_2::EGenApiSchemaVersionClass & __ptr64 __cdecl Api_3_2::EGenApiSchemaVersionClass::operator=(class Api_3_2::EGenApiSchemaVersionClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	126 (0x7e)	
                                        public: class Api_3_2::EInputDirectionClass & __ptr64 __cdecl GenApi_3_2::EInputDirectionClass::operator=(class GenApi_3_2::EInputDirectionClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	128 (0x80)	
                                        public: class Api_3_2::ENameSpaceClass & __ptr64 __cdecl Api_3_2::ENameSpaceClass::operator=(class Api_3_2::ENameSpaceClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	130 (0x82)	
                                        public: class Api_3_2::ERepresentationClass & __ptr64 __cdecl Api_3_2::ERepresentationClass::operator=(class Api_3_2::ERepresentationClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	132 (0x84)	
                                        public: class Api_3_2::ESignClass & __ptr64 __cdecl Api_3_2::ESignClass::operator=(class Api_3_2::ESignClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	134 (0x86)	
                                        public: class Api_3_2::ESlopeClass & __ptr64 __cdecl Api_3_2::ESlopeClass::operator=(class Api_3_2::ESlopeClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	136 (0x88)	
                                        public: class Api_3_2::EStandardNameSpaceClass & __ptr64 __cdecl Api_3_2::EStandardNameSpaceClass::operator=(class Api_3_2::EStandardNameSpaceClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	138 (0x8a)	
                                        public: class Api_3_2::EVisibilityClass & __ptr64 __cdecl Api_3_2::EVisibilityClass::operator=(class Api_3_2::EVisibilityClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	140 (0x8c)	
                                        public: class Api_3_2::EYesNoClass & __ptr64 __cdecl Api_3_2::EYesNoClass::operator=(class Api_3_2::EYesNoClass const & __ptr64) __ptr64	0x0000000180001710	0x00001710	142 (0x8e)	
                                        public: class Api_3_2::int64_autovector_t & __ptr64 __cdecl Api_3_2::int64_autovector_t::operator=(class Api_3_2::int64_autovector_t const & __ptr64) __ptr64	0x0000000180001370	0x00001370	150 (0x96)	
                                        public: class Api_3_2::node_vector & __ptr64 __cdecl Api_3_2::node_vector::operator=(class Api_3_2::node_vector const & __ptr64) __ptr64	0x00000001800080d0	0x000080d0	155 (0x9b)	
                                        public: class Api_3_2::node_vector::const_iterator & __ptr64 __cdecl Api_3_2::node_vector::const_iterator::operator++(void) __ptr64	0x00000001800081b0	0x000081b0	186 (0xba)	
                                        public: class Api_3_2::node_vector::const_iterator & __ptr64 __cdecl Api_3_2::node_vector::const_iterator::operator+=(__int64) __ptr64	0x0000000180008210	0x00008210	228 (0xe4)	
                                        public: class Api_3_2::node_vector::const_iterator & __ptr64 __cdecl Api_3_2::node_vector::const_iterator::operator--(void) __ptr64	0x00000001800081e0	0x000081e0	194 (0xc2)	
                                        public: class Api_3_2::node_vector::const_iterator & __ptr64 __cdecl Api_3_2::node_vector::const_iterator::operator-=(__int64) __ptr64	0x0000000180008230	0x00008230	236 (0xec)	
                                        public: class Api_3_2::node_vector::const_iterator & __ptr64 __cdecl Api_3_2::node_vector::const_iterator::operator=(class Api_3_2::node_vector::const_iterator const & __ptr64) __ptr64	0x0000000180001690	0x00001690	146 (0x92)	
                                        public: class GenApi_3_2::node_vector::const_iterator __cdecl GenApi_3_2::node_vector::const_iterator::operator+(__int64)const __ptr64	0x0000000180008220	0x00008220	215 (0xd7)	
                                        public: class GenApi_3_2::node_vector::const_iterator __cdecl GenApi_3_2::node_vector::const_iterator::operator++(int) __ptr64	0x00000001800081c0	0x000081c0	185 (0xb9)	
                                        public: class Api_3_2::node_vector::const_iterator __cdecl Api_3_2::node_vector::const_iterator::operator+=(__int64)const __ptr64	0x0000000180008220	0x00008220	229 (0xe5)	
                                        public: class Api_3_2::node_vector::const_iterator __cdecl Api_3_2::node_vector::const_iterator::operator-(__int64)const __ptr64	0x0000000180008240	0x00008240	202 (0xca)	
                                        public: class Api_3_2::node_vector::const_iterator __cdecl Api_3_2::node_vector::const_iterator::operator--(int) __ptr64	0x00000001800081f0	0x000081f0	193 (0xc1)	
                                        public: class Api_3_2::node_vector::const_iterator __cdecl Api_3_2::node_vector::const_iterator::operator-=(__int64)const __ptr64	0x0000000180008240	0x00008240	237 (0xed)	
                                        public: class Api_3_2::node_vector::iterator & __ptr64 __cdecl Api_3_2::node_vector::iterator::operator++(void) __ptr64	0x00000001800081b0	0x000081b0	190 (0xbe)	
                                        public: class Api_3_2::node_vector::iterator & __ptr64 __cdecl Api_3_2::node_vector::iterator::operator+=(__int64) __ptr64	0x0000000180008210	0x00008210	232 (0xe8)	
                                        public: class Api_3_2::node_vector::iterator & __ptr64 __cdecl Api_3_2::node_vector::iterator::operator--(void) __ptr64	0x00000001800081e0	0x000081e0	198 (0xc6)	
                                        public: class Api_3_2::node_vector::iterator & __ptr64 __cdecl Api_3_2::node_vector::iterator::operator-=(__int64) __ptr64	0x0000000180008230	0x00008230	240 (0xf0)	
                                        public: class Api_3_2::node_vector::iterator & __ptr64 __cdecl Api_3_2::node_vector::iterator::operator=(class GenApi_3_2::node_vector::iterator const & __ptr64) __ptr64	0x0000000180001690	0x00001690	152 (0x98)	
                                        public: class Api_3_2::node_vector::iterator __cdecl Api_3_2::node_vector::iterator::operator+(__int64)const __ptr64	0x0000000180008220	0x00008220	217 (0xd9)	
                                        public: class Api_3_2::node_vector::iterator __cdecl Api_3_2::node_vector::iterator::operator++(int) __ptr64	0x00000001800081c0	0x000081c0	189 (0xbd)	
                                        public: class Api_3_2::node_vector::iterator __cdecl Api_3_2::node_vector::iterator::operator+=(__int64)const __ptr64	0x0000000180008220	0x00008220	233 (0xe9)	
                                        public: class Api_3_2::node_vector::iterator __cdecl Api_3_2::node_vector::iterator::operator-(__int64)const __ptr64	0x0000000180008240	0x00008240	206 (0xce)	
                                        public: class Api_3_2::node_vector::iterator __cdecl Api_3_2::node_vector::iterator::operator--(int) __ptr64	0x00000001800081f0	0x000081f0	197 (0xc5)	
                                        public: class Api_3_2::node_vector::iterator __cdecl Api_3_2::node_vector::iterator::operator-=(__int64)const __ptr64	0x0000000180008240	0x00008240	241 (0xf1)	
                                        public: class Api_3_2::value_vector & __ptr64 __cdecl Api_3_2::value_vector::operator=(class Api_3_2::value_vector const & __ptr64) __ptr64	0x00000001800080d0	0x000080d0	156 (0x9c)	
                                        public: class Api_3_2::value_vector::const_iterator & __ptr64 __cdecl GenApi_3_2::value_vector::const_iterator::operator++(void) __ptr64	0x00000001800081b0	0x000081b0	188 (0xbc)	
                                        public: class Api_3_2::value_vector::const_iterator & __ptr64 __cdecl GenApi_3_2::value_vector::const_iterator::operator+=(__int64) __ptr64	0x0000000180008210	0x00008210	230 (0xe6)	
                                        public: class Api_3_2::value_vector::const_iterator & __ptr64 __cdecl GenApi_3_2::value_vector::const_iterator::operator--(void) __ptr64	0x00000001800081e0	0x000081e0	196 (0xc4)	
                                        public: class Api_3_2::value_vector::const_iterator & __ptr64 __cdecl GenApi_3_2::value_vector::const_iterator::operator-=(__int64) __ptr64	0x0000000180008230	0x00008230	238 (0xee)	
                                        public: class Api_3_2::value_vector::const_iterator & __ptr64 __cdecl GenApi_3_2::value_vector::const_iterator::operator=(class GenApi_3_2::value_vector::const_iterator const & __ptr64) __ptr64	0x0000000180001690	0x00001690	148 (0x94)	
                                        public: class Api_3_2::value_vector::const_iterator __cdecl Api_3_2::value_vector::const_iterator::operator+(__int64)const __ptr64	0x0000000180008220	0x00008220	216 (0xd8)	
                                        public: class Api_3_2::value_vector::const_iterator __cdecl Api_3_2::value_vector::const_iterator::operator++(int) __ptr64	0x00000001800081c0	0x000081c0	187 (0xbb)	
                                        public: class Api_3_2::value_vector::const_iterator __cdecl Api_3_2::value_vector::const_iterator::operator+=(__int64)const __ptr64	0x0000000180008220	0x00008220	231 (0xe7)	
                                        public: class Api_3_2::value_vector::const_iterator __cdecl Api_3_2::value_vector::const_iterator::operator-(__int64)const __ptr64	0x0000000180008240	0x00008240	204 (0xcc)	
                                        public: class Api_3_2::value_vector::const_iterator __cdecl Api_3_2::value_vector::const_iterator::operator--(int) __ptr64	0x00000001800081f0	0x000081f0	195 (0xc3)	
                                        public: class Api_3_2::value_vector::const_iterator __cdecl Api_3_2::value_vector::const_iterator::operator-=(__int64)const __ptr64	0x0000000180008240	0x00008240	239 (0xef)	
                                        public: class Api_3_2::value_vector::iterator & __ptr64 __cdecl Api_3_2::value_vector::iterator::operator++(void) __ptr64	0x00000001800081b0	0x000081b0	192 (0xc0)	
                                        public: class Api_3_2::value_vector::iterator & __ptr64 __cdecl Api_3_2::value_vector::iterator::operator+=(__int64) __ptr64	0x0000000180008210	0x00008210	234 (0xea)	
                                        public: class Api_3_2::value_vector::iterator & __ptr64 __cdecl Api_3_2::value_vector::iterator::operator--(void) __ptr64	0x00000001800081e0	0x000081e0	200 (0xc8)	
                                        public: class Api_3_2::value_vector::iterator & __ptr64 __cdecl Api_3_2::value_vector::iterator::operator-=(__int64) __ptr64	0x0000000180008230	0x00008230	242 (0xf2)	
                                        public: class Api_3_2::value_vector::iterator & __ptr64 __cdecl Api_3_2::value_vector::iterator::operator=(class GenApi_3_2::value_vector::iterator const & __ptr64) __ptr64	0x0000000180001690	0x00001690	154 (0x9a)	
                                        public: class GenApi_3_2::value_vector::iterator __cdecl GenApi_3_2::value_vector::iterator::operator+(__int64)const __ptr64	0x0000000180008220	0x00008220	218 (0xda)	
                                        public: class Api_3_2::value_vector::iterator __cdecl Api_3_2::value_vector::iterator::operator++(int) __ptr64	0x00000001800081c0	0x000081c0	191 (0xbf)	
                                        public: class Api_3_2::value_vector::iterator __cdecl Api_3_2::value_vector::iterator::operator+=(__int64)const __ptr64	0x0000000180008220	0x00008220	235 (0xeb)	
                                        public: class Api_3_2::value_vector::iterator __cdecl Api_3_2::value_vector::iterator::operator-(__int64)const __ptr64	0x0000000180008240	0x00008240	208 (0xd0)	
                                        public: class Api_3_2::value_vector::iterator __cdecl Api_3_2::value_vector::iterator::operator--(int) __ptr64	0x00000001800081f0	0x000081f0	199 (0xc7)	
                                        public: class Api_3_2::value_vector::iterator __cdecl Api_3_2::value_vector::iterator::operator-=(__int64)const __ptr64	0x0000000180008240	0x00008240	243 (0xf3)	
                                        public: class GIC_3_2::gcstring __cdecl GenApi_3_2::CFeatureBag::ToString(void) __ptr64	0x000000018006d160	0x0006d160	434 (0x1b2)	
                                        public: class GIC_3_2::gcstring __cdecl GenApi_3_2::CNodeMapFactory::ToString(void)const __ptr64	0x0000000180041f00	0x00041f00	435 (0x1b3)	
                                        public: class GIC_3_2::gcstring __cdecl Api_3_2::CNodeMapFactory::ToXml(void)const __ptr64	0x0000000180041fe0	0x00041fe0	463 (0x1cf)	
                                        public: class GIC_3_2::gcstring const __cdecl Api_3_2::CNodeMapFactory::ApplyStyleSheet(class GIC_3_2::gcstring const & __ptr64) __ptr64	0x0000000180042190	0x00042190	300 (0x12c)	
                                        public: double & __ptr64 __cdecl Api_3_2::double_autovector_t::operator[](unsigned __int64) __ptr64	0x00000001800013e0	0x000013e0	166 (0xa6)	
                                        public: double const & __ptr64 __cdecl Api_3_2::double_autovector_t::operator[](unsigned __int64)const __ptr64	0x00000001800013e0	0x000013e0	167 (0xa7)	
                                        public: int __cdecl Api_3_2::CChunkPort::GetChunkIDLength(void) __ptr64	0x0000000180008f90	0x00008f90	378 (0x17a)	
                                        public: int __cdecl Api_3_2::CEventPort::GetEventIDLength(void) __ptr64	0x0000000180018c10	0x00018c10	380 (0x17c)	
                                        public: static bool __cdecl Api_3_2::CNodeMapFactory::ClearCache(void)	0x0000000180042000	0x00042000	327 (0x147)	
                                        public: static bool __cdecl Api_3_2::EAccessModeClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_EAccessMode * __ptr64)	0x0000000180002990	0x00002990	361 (0x169)	
                                        public: static bool __cdecl Api_3_2::ECachingModeClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_ECachingMode * __ptr64)	0x0000000180002c50	0x00002c50	362 (0x16a)	
                                        public: static bool __cdecl Api_3_2::EDisplayNotationClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_EDisplayNotation * __ptr64)	0x0000000180003740	0x00003740	363 (0x16b)	
                                        public: static bool __cdecl Api_3_2::EEndianessClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_EEndianess * __ptr64)	0x00000001800021f0	0x000021f0	364 (0x16c)	
                                        public: static bool __cdecl Api_3_2::EGenApiSchemaVersionClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_EGenApiSchemaVersion * __ptr64)	0x0000000180003b80	0x00003b80	365 (0x16d)	
                                        public: static bool __cdecl Api_3_2::EInputDirectionClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_EInputDirection * __ptr64)	0x0000000180003960	0x00003960	366 (0x16e)	
                                        public: static bool __cdecl Api_3_2::ENameSpaceClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_ENameSpace * __ptr64)	0x0000000180002e70	0x00002e70	367 (0x16f)	
                                        public: static bool __cdecl Api_3_2::ERepresentationClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_ERepresentation * __ptr64)	0x00000001800023c0	0x000023c0	368 (0x170)	
                                        public: static bool __cdecl Api_3_2::ESignClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_ESign * __ptr64)	0x0000000180002020	0x00002020	369 (0x171)	
                                        public: static bool __cdecl Api_3_2::ESlopeClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_ESlope * __ptr64)	0x00000001800034d0	0x000034d0	370 (0x172)	
                                        public: static bool __cdecl Api_3_2::EStandardNameSpaceClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_EStandardNameSpace * __ptr64)	0x0000000180003210	0x00003210	371 (0x173)	
                                        public: static bool __cdecl Api_3_2::EVisibilityClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_EVisibility * __ptr64)	0x0000000180002720	0x00002720	372 (0x174)	
                                        public: static bool __cdecl Api_3_2::EYesNoClass::FromString(class GIC_3_2::gcstring const & __ptr64,enum Api_3_2::_EYesNo * __ptr64)	0x0000000180003040	0x00003040	373 (0x175)	
                                        public: static class Api_3_2::CNodeDataMap * __ptr64 __cdecl GenApi_3_2::CNodeMapFactory::CreateNodeDataFromNodeMap(struct Api_3_2::INodeMap * __ptr64)	0x0000000180042010	0x00042010	331 (0x14b)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::EAccessModeClass::ToString(enum Api_3_2::_EAccessMode)	0x0000000180002c00	0x00002c00	437 (0x1b5)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::ECachingModeClass::ToString(enum Api_3_2::_ECachingMode)	0x0000000180002e20	0x00002e20	439 (0x1b7)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::EDisplayNotationClass::ToString(enum Api_3_2::_EDisplayNotation)	0x0000000180003910	0x00003910	441 (0x1b9)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::EEndianessClass::ToString(enum Api_3_2::_EEndianess)	0x0000000180002370	0x00002370	443 (0x1bb)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::EGenApiSchemaVersionClass::ToString(enum Api_3_2::_EGenApiSchemaVersion)	0x0000000180003cb0	0x00003cb0	445 (0x1bd)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::EInputDirectionClass::ToString(enum Api_3_2::_EInputDirection)	0x0000000180003b30	0x00003b30	447 (0x1bf)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::ENameSpaceClass::ToString(enum Api_3_2::_ENameSpace)	0x0000000180002ff0	0x00002ff0	449 (0x1c1)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::ERepresentationClass::ToString(enum Api_3_2::_ERepresentation)	0x00000001800026d0	0x000026d0	451 (0x1c3)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::ESignClass::ToString(enum Api_3_2::_ESign)	0x00000001800021a0	0x000021a0	453 (0x1c5)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::ESlopeClass::ToString(enum Api_3_2::_ESlope)	0x00000001800036f0	0x000036f0	455 (0x1c7)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::EStandardNameSpaceClass::ToString(enum Api_3_2::_EStandardNameSpace)	0x0000000180003480	0x00003480	457 (0x1c9)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::EVisibilityClass::ToString(enum Api_3_2::_EVisibility)	0x0000000180002940	0x00002940	459 (0x1cb)	
                                        public: static class GIC_3_2::gcstring __cdecl Api_3_2::EYesNoClass::ToString(enum Api_3_2::_EYesNo)	0x00000001800031c0	0x000031c0	461 (0x1cd)	
                                        public: static struct Api_3_2::INodeMap * __ptr64 __cdecl Api_3_2::CNodeMapFactory::CreateEmptyNodeMap(void)	0x0000000180041e40	0x00041e40	330 (0x14a)	
                                        public: static void * __ptr64 __cdecl Api_3_2::node_vector::operator new(unsigned __int64)	0x0000000180008110	0x00008110	92 (0x5c)	
                                        public: static void * __ptr64 __cdecl Api_3_2::value_vector::operator new(unsigned __int64)	0x0000000180008110	0x00008110	93 (0x5d)	
                                        public: static void __cdecl Api_3_2::EAccessModeClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_EAccessMode * __ptr64)	0x0000000180002a80	0x00002a80	438 (0x1b6)	
                                        public: static void __cdecl Api_3_2::ECachingModeClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_ECachingMode * __ptr64)	0x0000000180002cf0	0x00002cf0	440 (0x1b8)	
                                        public: static void __cdecl Api_3_2::EDisplayNotationClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_EDisplayNotation * __ptr64)	0x00000001800037e0	0x000037e0	442 (0x1ba)	
                                        public: static void __cdecl Api_3_2::EEndianessClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_EEndianess * __ptr64)	0x0000000180002260	0x00002260	444 (0x1bc)	
                                        public: static void __cdecl Api_3_2::EGenApiSchemaVersionClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_EGenApiSchemaVersion * __ptr64)	0x0000000180003bf0	0x00003bf0	446 (0x1be)	
                                        public: static void __cdecl Api_3_2::EInputDirectionClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_EInputDirection * __ptr64)	0x0000000180003a00	0x00003a00	448 (0x1c0)	
                                        public: static void __cdecl Api_3_2::ENameSpaceClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_ENameSpace * __ptr64)	0x0000000180002ee0	0x00002ee0	450 (0x1c2)	
                                        public: static void __cdecl Api_3_2::ERepresentationClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_ERepresentation * __ptr64)	0x0000000180002500	0x00002500	452 (0x1c4)	
                                        public: static void __cdecl Api_3_2::ESignClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_ESign * __ptr64)	0x0000000180002090	0x00002090	454 (0x1c6)	
                                        public: static void __cdecl Api_3_2::ESlopeClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_ESlope * __ptr64)	0x0000000180003590	0x00003590	456 (0x1c8)	
                                        public: static void __cdecl Api_3_2::EStandardNameSpaceClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_EStandardNameSpace * __ptr64)	0x0000000180003300	0x00003300	458 (0x1ca)	
                                        public: static void __cdecl Api_3_2::EVisibilityClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_EVisibility * __ptr64)	0x00000001800027e0	0x000027e0	460 (0x1cc)	
                                        public: static void __cdecl Api_3_2::EYesNoClass::ToString(class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_EYesNo * __ptr64)	0x00000001800030b0	0x000030b0	462 (0x1ce)	
                                        public: static void __cdecl Api_3_2::node_vector::operator delete(void * __ptr64)	0x0000000180008100	0x00008100	94 (0x5e)	
                                        public: static void __cdecl Api_3_2::value_vector::operator delete(void * __ptr64)	0x0000000180008100	0x00008100	95 (0x5f)	
                                        public: struct Api_3_2::INode * __ptr64 & __ptr64 __cdecl Api_3_2::node_vector::iterator::operator*(void)const __ptr64	0x0000000180001e80	0x00001e80	181 (0xb5)	
                                        public: struct Api_3_2::INode * __ptr64 & __ptr64 __cdecl Api_3_2::node_vector::iterator::operator[](__int64)const __ptr64	0x0000000180008260	0x00008260	170 (0xaa)	
                                        public: struct Api_3_2::INode * __ptr64 & __ptr64 __cdecl Api_3_2::node_vector::operator[](unsigned __int64) __ptr64	0x00000001800013e0	0x000013e0	172 (0xac)	
                                        public: struct Api_3_2::INode * __ptr64 const & __ptr64 __cdecl Api_3_2::node_vector::const_iterator::operator*(void)const __ptr64	0x0000000180001e80	0x00001e80	179 (0xb3)	
                                        public: struct Api_3_2::INode * __ptr64 const & __ptr64 __cdecl Api_3_2::node_vector::const_iterator::operator[](__int64)const __ptr64	0x0000000180008260	0x00008260	164 (0xa4)	
                                        public: struct Api_3_2::INode * __ptr64 const & __ptr64 __cdecl Api_3_2::node_vector::operator[](unsigned __int64)const __ptr64	0x00000001800013e0	0x000013e0	173 (0xad)	
                                        public: struct Api_3_2::INodeMap * __ptr64 __cdecl Api_3_2::CNodeMapFactory::CreateNodeMap(class Api_3_2::CLock & __ptr64,class GIC_3_2::gcstring const & __ptr64,bool) __ptr64	0x0000000180041e20	0x00041e20	332 (0x14c)	
                                        public: struct Api_3_2::INodeMap * __ptr64 __cdecl Api_3_2::CNodeMapFactory::CreateNodeMap(class GIC_3_2::gcstring const & __ptr64,bool) __ptr64	0x0000000180041e10	0x00041e10	333 (0x14d)	
                                        public: struct Api_3_2::IValue * __ptr64 & __ptr64 __cdecl Api_3_2::value_vector::iterator::operator*(void)const __ptr64	0x0000000180001e80	0x00001e80	182 (0xb6)	
                                        public: struct Api_3_2::IValue * __ptr64 & __ptr64 __cdecl Api_3_2::value_vector::iterator::operator[](__int64)const __ptr64	0x0000000180008260	0x00008260	171 (0xab)	
                                        public: struct Api_3_2::IValue * __ptr64 & __ptr64 __cdecl Api_3_2::value_vector::operator[](unsigned __int64) __ptr64	0x00000001800013e0	0x000013e0	174 (0xae)	
                                        public: struct Api_3_2::IValue * __ptr64 const & __ptr64 __cdecl GenApi_3_2::value_vector::const_iterator::operator*(void)const __ptr64	0x0000000180001e80	0x00001e80	180 (0xb4)	
                                        public: struct Api_3_2::IValue * __ptr64 const & __ptr64 __cdecl GenApi_3_2::value_vector::const_iterator::operator[](__int64)const __ptr64	0x0000000180008260	0x00008260	165 (0xa5)	
                                        public: struct Api_3_2::IValue * __ptr64 const & __ptr64 __cdecl GenApi_3_2::value_vector::operator[](unsigned __int64)const __ptr64	0x00000001800013e0	0x000013e0	175 (0xaf)	
                                        public: unsigned __int64 __cdecl Api_3_2::CFeatureBagger::Bag(struct Api_3_2::INodeMap * __ptr64,bool,bool,bool,int) __ptr64	0x000000018006d640	0x0006d640	314 (0x13a)	
                                        public: unsigned __int64 __cdecl Api_3_2::double_autovector_t::size(void)const __ptr64	0x00000001800013f0	0x000013f0	543 (0x21f)	
                                        public: unsigned __int64 __cdecl Api_3_2::int64_autovector_t::size(void)const __ptr64	0x00000001800013f0	0x000013f0	544 (0x220)	
                                        public: virtual __cdecl Api_3_2::CChunkAdapter::~CChunkAdapter(void) __ptr64	0x00000001800094b0	0x000094b0	64 (0x40)	
                                        public: virtual __cdecl Api_3_2::CChunkAdapterDcam::~CChunkAdapterDcam(void) __ptr64	0x0000000180009f00	0x00009f00	65 (0x41)	
                                        public: virtual __cdecl Api_3_2::CChunkAdapterGenDC::~CChunkAdapterGenDC(void) __ptr64	0x000000018000b490	0x0000b490	67 (0x43)	
                                        public: virtual __cdecl Api_3_2::CChunkAdapterGeneric::~CChunkAdapterGeneric(void) __ptr64	0x000000018000bad0	0x0000bad0	68 (0x44)	
                                        public: virtual __cdecl Api_3_2::CChunkAdapterGEV::~CChunkAdapterGEV(void) __ptr64	0x000000018000aec0	0x0000aec0	66 (0x42)	
                                        public: virtual __cdecl Api_3_2::CChunkAdapterU3V::~CChunkAdapterU3V(void) __ptr64	0x000000018000b490	0x0000b490	69 (0x45)	
                                        public: virtual __cdecl Api_3_2::CChunkPort::~CChunkPort(void) __ptr64	0x000000018000c520	0x0000c520	70 (0x46)	
                                        public: virtual __cdecl Api_3_2::CEventAdapter1394::~CEventAdapter1394(void) __ptr64	0x00000001800162c0	0x000162c0	71 (0x47)	
                                        public: virtual __cdecl Api_3_2::CEventAdapter::~CEventAdapter(void) __ptr64	0x0000000180015930	0x00015930	72 (0x48)	
                                        public: virtual __cdecl Api_3_2::CEventAdapterCL::~CEventAdapterCL(void) __ptr64	0x00000001800173a0	0x000173a0	73 (0x49)	
                                        public: virtual __cdecl Api_3_2::CEventAdapterGeneric::~CEventAdapterGeneric(void) __ptr64	0x00000001800178c0	0x000178c0	75 (0x4b)	
                                        public: virtual __cdecl Api_3_2::CEventAdapterGEV::~CEventAdapterGEV(void) __ptr64	0x0000000180016450	0x00016450	74 (0x4a)	
                                        public: virtual __cdecl Api_3_2::CEventAdapterU3V::~CEventAdapterU3V(void) __ptr64	0x0000000180016f70	0x00016f70	76 (0x4c)	
                                        public: virtual __cdecl Api_3_2::CEventPort::~CEventPort(void) __ptr64	0x0000000180017e60	0x00017e60	77 (0x4d)	
                                        public: virtual __cdecl Api_3_2::CFeatureBagger::~CFeatureBagger(void) __ptr64	0x000000018006d370	0x0006d370	79 (0x4f)	
                                        public: virtual __cdecl Api_3_2::CNodeMapFactory::~CNodeMapFactory(void) __ptr64	0x0000000180041810	0x00041810	82 (0x52)	
                                        public: virtual __cdecl Api_3_2::CSelectorSet::~CSelectorSet(void) __ptr64	0x0000000180074e40	0x00074e40	86 (0x56)	
                                        public: virtual __cdecl Api_3_2::double_autovector_t::~double_autovector_t(void) __ptr64	0x0000000180001500	0x00001500	88 (0x58)	
                                        public: virtual __cdecl Api_3_2::FileProtocolAdapter::~FileProtocolAdapter(void) __ptr64	0x00000001800191a0	0x000191a0	87 (0x57)	
                                        public: virtual __cdecl Api_3_2::int64_autovector_t::~int64_autovector_t(void) __ptr64	0x00000001800012b0	0x000012b0	89 (0x59)	
                                        public: virtual __cdecl Api_3_2::node_vector::~node_vector(void) __ptr64	0x0000000180007a40	0x00007a40	90 (0x5a)	
                                        public: virtual __cdecl Api_3_2::value_vector::~value_vector(void) __ptr64	0x00000001800083e0	0x000083e0	91 (0x5b)	
                                        public: virtual __int64 __cdecl Api_3_2::CPortWriteList::GetCookie(void) __ptr64	0x0000000180011eb0	0x00011eb0	379 (0x17b)	
                                        public: virtual __int64 __cdecl Api_3_2::FileProtocolAdapter::getBufSize(char const * __ptr64,int) __ptr64	0x000000018001a7d0	0x0001a7d0	525 (0x20d)	
                                        public: virtual __int64 __cdecl Api_3_2::FileProtocolAdapter::read(char * __ptr64,__int64,__int64,char const * __ptr64) __ptr64	0x000000018001a340	0x0001a340	537 (0x219)	
                                        public: virtual __int64 __cdecl Api_3_2::FileProtocolAdapter::write(char const * __ptr64,__int64,__int64,char const * __ptr64) __ptr64	0x0000000180019ea0	0x00019ea0	547 (0x223)	
                                        public: virtual bool __cdecl Api_3_2::CChunkAdapterDcam::CheckBufferLayout(unsigned char * __ptr64,__int64) __ptr64	0x0000000180009f10	0x00009f10	317 (0x13d)	
                                        public: virtual bool __cdecl Api_3_2::CChunkAdapterGeneric::CheckBufferLayout(unsigned char * __ptr64,__int64) __ptr64	0x000000018000bae0	0x0000bae0	319 (0x13f)	
                                        public: virtual bool __cdecl Api_3_2::CChunkAdapterGEV::CheckBufferLayout(unsigned char * __ptr64,__int64) __ptr64	0x000000018000aed0	0x0000aed0	318 (0x13e)	
                                        public: virtual bool __cdecl Api_3_2::CChunkAdapterU3V::CheckBufferLayout(unsigned char * __ptr64,__int64) __ptr64	0x000000018000b4a0	0x0000b4a0	320 (0x140)	
                                        public: virtual bool __cdecl Api_3_2::CSelectorSet::SetFirst(void) __ptr64	0x0000000180075180	0x00075180	416 (0x1a0)	
                                        public: virtual bool __cdecl Api_3_2::CSelectorSet::SetNext(bool) __ptr64	0x00000001800751d0	0x000751d0	419 (0x1a3)	
                                        public: virtual bool __cdecl Api_3_2::FileProtocolAdapter::attach(struct Api_3_2::INodeMap * __ptr64) __ptr64	0x0000000180019220	0x00019220	493 (0x1ed)	
                                        public: virtual bool __cdecl Api_3_2::FileProtocolAdapter::closeFile(char const * __ptr64) __ptr64	0x0000000180019d40	0x00019d40	507 (0x1fb)	
                                        public: virtual bool __cdecl Api_3_2::FileProtocolAdapter::deleteFile(char const * __ptr64) __ptr64	0x000000018001a960	0x0001a960	508 (0x1fc)	
                                        public: virtual bool __cdecl Api_3_2::FileProtocolAdapter::openFile(char const * __ptr64,int) __ptr64	0x0000000180019a80	0x00019a80	532 (0x214)	
                                        public: virtual bool __cdecl Api_3_2::node_vector::empty(void)const __ptr64	0x00000001800080c0	0x000080c0	509 (0x1fd)	
                                        public: virtual bool __cdecl Api_3_2::value_vector::empty(void)const __ptr64	0x00000001800080c0	0x000080c0	510 (0x1fe)	
                                        public: virtual class Api_3_2::CFeatureBag const & __ptr64 __cdecl Api_3_2::CFeatureBagger::at(unsigned __int64)const __ptr64	0x000000018006d510	0x0006d510	488 (0x1e8)	
                                        public: virtual class Api_3_2::CFeatureBagger::const_iterator __cdecl Api_3_2::CFeatureBagger::begin(void)const __ptr64	0x000000018006d540	0x0006d540	498 (0x1f2)	
                                        public: virtual class Api_3_2::CFeatureBagger::const_iterator __cdecl Api_3_2::CFeatureBagger::end(void)const __ptr64	0x0000000180007ec0	0x00007ec0	511 (0x1ff)	
                                        public: virtual class Api_3_2::node_vector::const_iterator __cdecl Api_3_2::node_vector::begin(void)const __ptr64	0x0000000180007d60	0x00007d60	500 (0x1f4)	
                                        public: virtual class Api_3_2::node_vector::const_iterator __cdecl Api_3_2::node_vector::end(void)const __ptr64	0x0000000180007ec0	0x00007ec0	513 (0x201)	
                                        public: virtual class Api_3_2::node_vector::iterator __cdecl Api_3_2::node_vector::begin(void) __ptr64	0x0000000180007e00	0x00007e00	499 (0x1f3)	
                                        public: virtual class Api_3_2::node_vector::iterator __cdecl Api_3_2::node_vector::end(void) __ptr64	0x0000000180007ec0	0x00007ec0	512 (0x200)	
                                        public: virtual class Api_3_2::node_vector::iterator __cdecl Api_3_2::node_vector::erase(class GenApi_3_2::node_vector::iterator) __ptr64	0x0000000180007c10	0x00007c10	516 (0x204)	
                                        public: virtual class Api_3_2::node_vector::iterator __cdecl Api_3_2::node_vector::insert(class GenApi_3_2::node_vector::iterator,struct Api_3_2::INode * __ptr64 const & __ptr64) __ptr64	0x0000000180007f10	0x00007f10	526 (0x20e)	
                                        public: virtual class Api_3_2::value_vector::const_iterator __cdecl Api_3_2::value_vector::begin(void)const __ptr64	0x0000000180008540	0x00008540	502 (0x1f6)	
                                        public: virtual class Api_3_2::value_vector::const_iterator __cdecl Api_3_2::value_vector::end(void)const __ptr64	0x0000000180007ec0	0x00007ec0	515 (0x203)	
                                        public: virtual class Api_3_2::value_vector::iterator __cdecl GenApi_3_2::value_vector::begin(void) __ptr64	0x00000001800085e0	0x000085e0	501 (0x1f5)	
                                        public: virtual class Api_3_2::value_vector::iterator __cdecl GenApi_3_2::value_vector::end(void) __ptr64	0x0000000180007ec0	0x00007ec0	514 (0x202)	
                                        public: virtual class Api_3_2::value_vector::iterator __cdecl GenApi_3_2::value_vector::erase(class GenApi_3_2::value_vector::iterator) __ptr64	0x0000000180008460	0x00008460	518 (0x206)	
                                        public: virtual class Api_3_2::value_vector::iterator __cdecl GenApi_3_2::value_vector::insert(class GenApi_3_2::value_vector::iterator,struct GenApi_3_2::IValue * __ptr64 const & __ptr64) __ptr64	0x0000000180008680	0x00008680	528 (0x210)	
                                        public: virtual class GIC_3_2::gcstring __cdecl Api_3_2::CSelectorSet::ToString(void) __ptr64	0x0000000180074f50	0x00074f50	436 (0x1b4)	
                                        public: virtual class GIC_3_2::gcstring const & __ptr64 __cdecl Api_3_2::CFeatureBag::GetBagName(void)const __ptr64	0x000000018006b800	0x0006b800	377 (0x179)	
                                        public: virtual enum Api_3_2::_EAccessMode __cdecl Api_3_2::CChunkPort::GetAccessMode(void)const __ptr64	0x000000018000cc40	0x0000cc40	375 (0x177)	
                                        public: virtual enum Api_3_2::_EAccessMode __cdecl Api_3_2::CEventPort::GetAccessMode(void)const __ptr64	0x00000001800183f0	0x000183f0	376 (0x178)	
                                        public: virtual enum Api_3_2::_EInterfaceType __cdecl Api_3_2::CChunkPort::GetPrincipalInterfaceType(void)const __ptr64	0x000000018000cc90	0x0000cc90	385 (0x181)	
                                        public: virtual enum Api_3_2::_EInterfaceType __cdecl Api_3_2::CEventPort::GetPrincipalInterfaceType(void)const __ptr64	0x000000018000cc90	0x0000cc90	386 (0x182)	
                                        public: virtual enum Api_3_2::_EYesNo __cdecl Api_3_2::CChunkPort::GetSwapEndianess(void) __ptr64	0x0000000180008f80	0x00008f80	390 (0x186)	
                                        public: virtual enum Api_3_2::_EYesNo __cdecl Api_3_2::CEventPort::GetSwapEndianess(void) __ptr64	0x0000000180008f80	0x00008f80	391 (0x187)	
                                        public: virtual struct Api_3_2::INode * __ptr64 & __ptr64 __cdecl Api_3_2::node_vector::at(unsigned __int64) __ptr64	0x0000000180007d20	0x00007d20	489 (0x1e9)	
                                        public: virtual struct Api_3_2::INode * __ptr64 & __ptr64 __cdecl Api_3_2::node_vector::back(void) __ptr64	0x0000000180007d50	0x00007d50	494 (0x1ee)	
                                        public: virtual struct Api_3_2::INode * __ptr64 & __ptr64 __cdecl Api_3_2::node_vector::front(void) __ptr64	0x0000000180007ef0	0x00007ef0	520 (0x208)	
                                        public: virtual struct Api_3_2::INode * __ptr64 const & __ptr64 __cdecl Api_3_2::node_vector::at(unsigned __int64)const __ptr64	0x0000000180007d20	0x00007d20	490 (0x1ea)	
                                        public: virtual struct Api_3_2::INode * __ptr64 const & __ptr64 __cdecl Api_3_2::node_vector::back(void)const __ptr64	0x0000000180007d50	0x00007d50	495 (0x1ef)	
                                        public: virtual struct Api_3_2::INode * __ptr64 const & __ptr64 __cdecl Api_3_2::node_vector::front(void)const __ptr64	0x0000000180007ef0	0x00007ef0	521 (0x209)	
                                        public: virtual struct Api_3_2::IValue * __ptr64 & __ptr64 __cdecl Api_3_2::value_vector::at(unsigned __int64) __ptr64	0x0000000180007d20	0x00007d20	491 (0x1eb)	
                                        public: virtual struct Api_3_2::IValue * __ptr64 & __ptr64 __cdecl Api_3_2::value_vector::back(void) __ptr64	0x0000000180007d50	0x00007d50	496 (0x1f0)	
                                        public: virtual struct Api_3_2::IValue * __ptr64 & __ptr64 __cdecl Api_3_2::value_vector::front(void) __ptr64	0x0000000180007ef0	0x00007ef0	522 (0x20a)	
                                        public: virtual struct Api_3_2::IValue * __ptr64 const & __ptr64 __cdecl Api_3_2::value_vector::at(unsigned __int64)const __ptr64	0x0000000180007d20	0x00007d20	492 (0x1ec)	
                                        public: virtual struct Api_3_2::IValue * __ptr64 const & __ptr64 __cdecl Api_3_2::value_vector::back(void)const __ptr64	0x0000000180007d50	0x00007d50	497 (0x1f1)	
                                        public: virtual struct Api_3_2::IValue * __ptr64 const & __ptr64 __cdecl Api_3_2::value_vector::front(void)const __ptr64	0x0000000180007ef0	0x00007ef0	523 (0x20b)	
                                        public: virtual unsigned __int64 __cdecl Api_3_2::CFeatureBagger::size(void)const __ptr64	0x00000001800013f0	0x000013f0	542 (0x21e)	
                                        public: virtual unsigned __int64 __cdecl Api_3_2::node_vector::capacity(void)const __ptr64	0x0000000180007ea0	0x00007ea0	503 (0x1f7)	
                                        public: virtual unsigned __int64 __cdecl Api_3_2::node_vector::max_size(void)const __ptr64	0x0000000180007f00	0x00007f00	530 (0x212)	
                                        public: virtual unsigned __int64 __cdecl Api_3_2::node_vector::size(void)const __ptr64	0x00000001800013f0	0x000013f0	545 (0x221)	
                                        public: virtual unsigned __int64 __cdecl Api_3_2::value_vector::capacity(void)const __ptr64	0x0000000180007ea0	0x00007ea0	504 (0x1f8)	
                                        public: virtual unsigned __int64 __cdecl Api_3_2::value_vector::max_size(void)const __ptr64	0x0000000180007f00	0x00007f00	531 (0x213)	
                                        public: virtual unsigned __int64 __cdecl Api_3_2::value_vector::size(void)const __ptr64	0x00000001800013f0	0x000013f0	546 (0x222)	
                                        public: virtual void __cdecl Api_3_2::CChunkAdapterDcam::AttachBuffer(unsigned char * __ptr64,__int64,struct GenApi_3_2::AttachStatistics_t * __ptr64) __ptr64	0x0000000180009f80	0x00009f80	301 (0x12d)	
                                        public: virtual void __cdecl Api_3_2::CChunkAdapterGeneric::AttachBuffer(unsigned char * __ptr64,__int64,struct GenApi_3_2::AttachStatistics_t * __ptr64) __ptr64	0x0000000180006d20	0x00006d20	305 (0x131)	
                                        public: virtual void __cdecl Api_3_2::CChunkAdapterGeneric::AttachBuffer(unsigned char * __ptr64,struct GenApi_3_2::SingleChunkData_t * __ptr64,__int64,struct GenApi_3_2::AttachStatistics_t * __ptr64) __ptr64	0x000000018000baf0	0x0000baf0	304 (0x130)	
                                        public: virtual void __cdecl Api_3_2::CChunkAdapterGeneric::AttachBuffer(unsigned char * __ptr64,struct Api_3_2::SingleChunkDataStr_t * __ptr64,__int64,struct GenApi_3_2::AttachStatistics_t * __ptr64) __ptr64	0x000000018000be40	0x0000be40	303 (0x12f)	
                                        public: virtual void __cdecl Api_3_2::CChunkAdapterGEV::AttachBuffer(unsigned char * __ptr64,__int64,struct GenApi_3_2::AttachStatistics_t * __ptr64) __ptr64	0x000000018000af30	0x0000af30	302 (0x12e)	
                                        public: virtual void __cdecl Api_3_2::CChunkAdapterU3V::AttachBuffer(unsigned char * __ptr64,__int64,struct GenApi_3_2::AttachStatistics_t * __ptr64) __ptr64	0x000000018000b4e0	0x0000b4e0	306 (0x132)	
                                        public: virtual void __cdecl Api_3_2::CChunkPort::Read(void * __ptr64,__int64,__int64) __ptr64	0x000000018000c700	0x0000c700	406 (0x196)	
                                        public: virtual void __cdecl Api_3_2::CChunkPort::SetPortImpl(struct Api_3_2::IPort * __ptr64) __ptr64	0x000000018000c890	0x0000c890	420 (0x1a4)	
                                        public: virtual void __cdecl Api_3_2::CChunkPort::SetPortImpl(struct Api_3_2::IPortStacked * __ptr64) __ptr64	0x000000018000c8e0	0x0000c8e0	421 (0x1a5)	
                                        public: virtual void __cdecl Api_3_2::CChunkPort::Write(void const * __ptr64,__int64,__int64) __ptr64	0x000000018000c5b0	0x0000c5b0	477 (0x1dd)	
                                        public: virtual void __cdecl Api_3_2::CEventAdapter1394::DeliverMessage(unsigned char const * __ptr64 const,unsigned int) __ptr64	0x0000000180016240	0x00016240	343 (0x157)	
                                        public: virtual void __cdecl Api_3_2::CEventAdapter::AttachNodeMap(struct Api_3_2::INodeMap * __ptr64) __ptr64	0x00000001800159d0	0x000159d0	312 (0x138)	
                                        public: virtual void __cdecl Api_3_2::CEventAdapter::DetachNodeMap(void) __ptr64	0x0000000180015c90	0x00015c90	357 (0x165)	
                                        public: virtual void __cdecl Api_3_2::CEventAdapterCL::DeliverMessage(unsigned char const * __ptr64 const,unsigned int) __ptr64	0x00000001800173b0	0x000173b0	344 (0x158)	
                                        public: virtual void __cdecl Api_3_2::CEventAdapterGeneric::DeliverMessage(unsigned char const * __ptr64 const,unsigned int) __ptr64	0x0000000180006d20	0x00006d20	346 (0x15a)	
                                        public: virtual void __cdecl Api_3_2::CEventAdapterGeneric::DeliverMessage(unsigned char const * __ptr64 const,unsigned int,class GenICam_3_2::gcstring const & __ptr64) __ptr64	0x00000001800178f0	0x000178f0	347 (0x15b)	
                                        public: virtual void __cdecl Api_3_2::CEventAdapterGeneric::DeliverMessage(unsigned char const * __ptr64 const,unsigned int,unsigned __int64) __ptr64	0x0000000180017b70	0x00017b70	348 (0x15c)	
                                        public: virtual void __cdecl Api_3_2::CEventAdapterGEV::DeliverMessage(unsigned char const * __ptr64 const,unsigned int) __ptr64	0x0000000180016460	0x00016460	345 (0x159)	
                                        public: virtual void __cdecl Api_3_2::CEventAdapterU3V::DeliverMessage(unsigned char const * __ptr64 const,unsigned int) __ptr64	0x0000000180016f80	0x00016f80	349 (0x15d)	
                                        public: virtual void __cdecl Api_3_2::CEventPort::Read(void * __ptr64,__int64,__int64) __ptr64	0x00000001800180e0	0x000180e0	407 (0x197)	
                                        public: virtual void __cdecl Api_3_2::CEventPort::SetPortImpl(struct Api_3_2::IPort * __ptr64) __ptr64	0x0000000180018320	0x00018320	422 (0x1a6)	
                                        public: virtual void __cdecl Api_3_2::CEventPort::SetPortImpl(struct Api_3_2::IPortStacked * __ptr64) __ptr64	0x0000000180018370	0x00018370	423 (0x1a7)	
                                        public: virtual void __cdecl Api_3_2::CEventPort::Write(void const * __ptr64,__int64,__int64) __ptr64	0x0000000180017f10	0x00017f10	478 (0x1de)	
                                        public: virtual void __cdecl Api_3_2::CFeatureBag::Destroy(void) __ptr64	0x000000018006b6c0	0x0006b6c0	351 (0x15f)	
                                        public: virtual void __cdecl Api_3_2::CFeatureBag::PersistFeature(struct GenApi_3_2::IValue & __ptr64) __ptr64	0x000000018006b710	0x0006b710	404 (0x194)	
                                        public: virtual void __cdecl Api_3_2::CFeatureBag::SetBagName(class GIC_3_2::gcstring const & __ptr64) __ptr64	0x000000018006b810	0x0006b810	414 (0x19e)	
                                        public: virtual void __cdecl Api_3_2::CFeatureBag::SetInfo(class GIC_3_2::gcstring const & __ptr64) __ptr64	0x000000018006cf30	0x0006cf30	417 (0x1a1)	
                                        public: virtual void __cdecl Api_3_2::CFeatureBagger::SetInfo(class GIC_3_2::gcstring const & __ptr64) __ptr64	0x000000018006e990	0x0006e990	418 (0x1a2)	
                                        public: virtual void __cdecl Api_3_2::CPortWriteList::Replay(struct Api_3_2::IPort * __ptr64) __ptr64	0x0000000180071af0	0x00071af0	410 (0x19a)	
                                        public: virtual void __cdecl Api_3_2::CPortWriteList::SetCookie(__int64) __ptr64	0x0000000180071b60	0x00071b60	415 (0x19f)	
                                        public: virtual void __cdecl Api_3_2::CPortWriteList::Write(void const * __ptr64,__int64,__int64) __ptr64	0x0000000180071a50	0x00071a50	479 (0x1df)	
                                        public: virtual void __cdecl Api_3_2::CSelectorSet::GetSelectorList(class Api_3_2::value_vector & __ptr64,bool) __ptr64	0x0000000180075d80	0x00075d80	388 (0x184)	
                                        public: virtual void __cdecl Api_3_2::CSelectorSet::Restore(void) __ptr64	0x0000000180075270	0x00075270	412 (0x19c)	
                                        public: virtual void __cdecl Api_3_2::node_vector::assign(unsigned __int64,struct Api_3_2::INode * __ptr64 const & __ptr64) __ptr64	0x0000000180007ac0	0x00007ac0	486 (0x1e6)	
                                        public: virtual void __cdecl Api_3_2::node_vector::clear(void) __ptr64	0x0000000180007c00	0x00007c00	505 (0x1f9)	
                                        public: virtual void __cdecl Api_3_2::node_vector::erase(unsigned __int64) __ptr64	0x0000000180007cf0	0x00007cf0	517 (0x205)	
                                        public: virtual void __cdecl Api_3_2::node_vector::insert(unsigned __int64,struct Api_3_2::INode * __ptr64 const & __ptr64) __ptr64	0x0000000180008040	0x00008040	527 (0x20f)	
                                        public: virtual void __cdecl Api_3_2::node_vector::pop_back(void) __ptr64	0x0000000180008120	0x00008120	533 (0x215)	
                                        public: virtual void __cdecl Api_3_2::node_vector::push_back(struct Api_3_2::INode * __ptr64 const & __ptr64) __ptr64	0x0000000180008130	0x00008130	535 (0x217)	
                                        public: virtual void __cdecl Api_3_2::node_vector::reserve(unsigned __int64) __ptr64	0x0000000180008170	0x00008170	538 (0x21a)	
                                        public: virtual void __cdecl Api_3_2::node_vector::resize(unsigned __int64) __ptr64	0x0000000180008160	0x00008160	540 (0x21c)	
                                        public: virtual void __cdecl Api_3_2::value_vector::assign(unsigned __int64,struct Api_3_2::IValue * __ptr64 const & __ptr64) __ptr64	0x0000000180007ac0	0x00007ac0	487 (0x1e7)	
                                        public: virtual void __cdecl Api_3_2::value_vector::clear(void) __ptr64	0x0000000180007c00	0x00007c00	506 (0x1fa)	
                                        public: virtual void __cdecl Api_3_2::value_vector::erase(unsigned __int64) __ptr64	0x0000000180007cf0	0x00007cf0	519 (0x207)	
                                        public: virtual void __cdecl Api_3_2::value_vector::insert(unsigned __int64,struct Api_3_2::IValue * __ptr64 const & __ptr64) __ptr64	0x0000000180008040	0x00008040	529 (0x211)	
                                        public: virtual void __cdecl Api_3_2::value_vector::pop_back(void) __ptr64	0x0000000180008120	0x00008120	534 (0x216)	
                                        public: virtual void __cdecl Api_3_2::value_vector::push_back(struct GenApi_3_2::IValue * __ptr64 const & __ptr64) __ptr64	0x0000000180008130	0x00008130	536 (0x218)	
                                        public: virtual void __cdecl Api_3_2::value_vector::reserve(unsigned __int64) __ptr64	0x0000000180008170	0x00008170	539 (0x21b)	
                                        public: virtual void __cdecl Api_3_2::value_vector::resize(unsigned __int64,struct Api_3_2::IValue * __ptr64 const & __ptr64) __ptr64	0x00000001800087b0	0x000087b0	541 (0x21d)	
                                        public: void __cdecl Api_3_2::CChunkAdapter::`default constructor closure'(void) __ptr64	0x0000000180009370	0x00009370	279 (0x117)	
                                        public: void __cdecl Api_3_2::CChunkAdapter::AttachNodeMap(struct Api_3_2::INodeMap * __ptr64) __ptr64	0x0000000180009560	0x00009560	311 (0x137)	
                                        public: void __cdecl Api_3_2::CChunkAdapter::ClearCaches(void) __ptr64	0x0000000180009870	0x00009870	328 (0x148)	
                                        public: void __cdecl Api_3_2::CChunkAdapter::DetachBuffer(void) __ptr64	0x0000000180009910	0x00009910	352 (0x160)	
                                        public: void __cdecl Api_3_2::CChunkAdapter::DetachNodeMap(void) __ptr64	0x00000001800097f0	0x000097f0	356 (0x164)	
                                        public: void __cdecl Api_3_2::CChunkAdapter::UpdateBuffer(unsigned char * __ptr64) __ptr64	0x00000001800099c0	0x000099c0	467 (0x1d3)	
                                        public: void __cdecl Api_3_2::CChunkAdapterDcam::`default constructor closure'(void) __ptr64	0x0000000180009d40	0x00009d40	280 (0x118)	
                                        public: void __cdecl Api_3_2::CChunkAdapterGenDC::`default constructor closure'(void) __ptr64	0x000000018000b870	0x0000b870	282 (0x11a)	
                                        public: void __cdecl Api_3_2::CChunkAdapterGeneric::`default constructor closure'(void) __ptr64	0x000000018000b960	0x0000b960	283 (0x11b)	
                                        public: void __cdecl Api_3_2::CChunkAdapterGEV::`default constructor closure'(void) __ptr64	0x000000018000ad50	0x0000ad50	281 (0x119)	
                                        public: void __cdecl Api_3_2::CChunkAdapterU3V::`default constructor closure'(void) __ptr64	0x000000018000b320	0x0000b320	284 (0x11c)	
                                        public: void __cdecl Api_3_2::CChunkPort::`default constructor closure'(void) __ptr64	0x00000001800091e0	0x000091e0	285 (0x11d)	
                                        public: void __cdecl Api_3_2::CChunkPort::`vbase destructor'(void) __ptr64	0x00000001800092a0	0x000092a0	277 (0x115)	
                                        public: void __cdecl Api_3_2::CChunkPort::AttachChunk(unsigned char * __ptr64,__int64,__int64,bool) __ptr64	0x000000018000c960	0x0000c960	307 (0x133)	
                                        public: void __cdecl Api_3_2::CChunkPort::ClearCache(void) __ptr64	0x000000018000cb80	0x0000cb80	326 (0x146)	
                                        public: void __cdecl Api_3_2::CChunkPort::DetachChunk(void) __ptr64	0x000000018000cb20	0x0000cb20	353 (0x161)	
                                        public: void __cdecl Api_3_2::CChunkPort::DetachPort(void) __ptr64	0x000000018000d240	0x0000d240	358 (0x166)	
                                        public: void __cdecl Api_3_2::CChunkPort::InvalidateNode(void) __ptr64	0x000000018000c940	0x0000c940	393 (0x189)	
                                        public: void __cdecl Api_3_2::CChunkPort::UpdateBuffer(unsigned char * __ptr64) __ptr64	0x000000018000cbd0	0x0000cbd0	468 (0x1d4)	
                                        public: void __cdecl Api_3_2::CEventAdapter1394::`default constructor closure'(void) __ptr64	0x0000000180015d90	0x00015d90	286 (0x11e)	
                                        public: void __cdecl Api_3_2::CEventAdapter1394::DeliverEventMessage(struct Api_3_2::EventData1394 & __ptr64,unsigned int) __ptr64	0x0000000180015fc0	0x00015fc0	337 (0x151)	
                                        public: void __cdecl Api_3_2::CEventAdapter::`default constructor closure'(void) __ptr64	0x00000001800157f0	0x000157f0	287 (0x11f)	
                                        public: void __cdecl Api_3_2::CEventAdapterCL::`default constructor closure'(void) __ptr64	0x0000000180017260	0x00017260	288 (0x120)	
                                        public: void __cdecl Api_3_2::CEventAdapterCL::DeliverEventData(struct Api_3_2::CL_EVENT_DATA const * __ptr64,unsigned short) __ptr64	0x0000000180017630	0x00017630	335 (0x14f)	
                                        public: void __cdecl Api_3_2::CEventAdapterGeneric::`default constructor closure'(void) __ptr64	0x0000000180017740	0x00017740	290 (0x122)	
                                        public: void __cdecl Api_3_2::CEventAdapterGEV::`default constructor closure'(void) __ptr64	0x0000000180016310	0x00016310	289 (0x121)	
                                        public: void __cdecl Api_3_2::CEventAdapterGEV::DeliverEventMessage(struct Api_3_2::GVCP_EVENT_REQUEST const * __ptr64) __ptr64	0x0000000180016910	0x00016910	340 (0x154)	
                                        public: void __cdecl Api_3_2::CEventAdapterGEV::DeliverEventMessage(struct Api_3_2::GVCP_EVENT_REQUEST_EXTENDED_ID const * __ptr64) __ptr64	0x0000000180016c40	0x00016c40	341 (0x155)	
                                        public: void __cdecl Api_3_2::CEventAdapterGEV::DeliverEventMessage(struct Api_3_2::GVCP_EVENTDATA_REQUEST const * __ptr64) __ptr64	0x0000000180016840	0x00016840	338 (0x152)	
                                        public: void __cdecl Api_3_2::CEventAdapterGEV::DeliverEventMessage(struct Api_3_2::GVCP_EVENTDATA_REQUEST_EXTENDED_ID const * __ptr64) __ptr64	0x0000000180016b70	0x00016b70	339 (0x153)	
                                        public: void __cdecl Api_3_2::CEventAdapterU3V::`default constructor closure'(void) __ptr64	0x0000000180016e30	0x00016e30	291 (0x123)	
                                        public: void __cdecl Api_3_2::CEventAdapterU3V::DeliverEventMessage(struct Api_3_2::U3V_EVENT_MESSAGE const * __ptr64) __ptr64	0x0000000180017190	0x00017190	342 (0x156)	
                                        public: void __cdecl Api_3_2::CEventPort::`default constructor closure'(void) __ptr64	0x00000001800156d0	0x000156d0	292 (0x124)	
                                        public: void __cdecl Api_3_2::CEventPort::`vbase destructor'(void) __ptr64	0x0000000180015790	0x00015790	278 (0x116)	
                                        public: void __cdecl Api_3_2::CEventPort::AttachEvent(unsigned char * __ptr64,__int64) __ptr64	0x0000000180018a20	0x00018a20	308 (0x134)	
                                        public: void __cdecl Api_3_2::CEventPort::DetachEvent(void) __ptr64	0x0000000180018ba0	0x00018ba0	354 (0x162)	
                                        public: void __cdecl Api_3_2::CEventPort::DetachNode(void) __ptr64	0x0000000180018980	0x00018980	355 (0x163)	
                                        public: void __cdecl Api_3_2::CEventPort::InvalidateNode(void) __ptr64	0x00000001800183d0	0x000183d0	394 (0x18a)	
                                        public: void __cdecl Api_3_2::CFeatureBagger::const_iterator::`default constructor closure'(void) __ptr64	0x00000001800016a0	0x000016a0	293 (0x125)	
                                        public: void __cdecl Api_3_2::CLock::Lock(void) __ptr64	0x0000000180079ad0	0x00079ad0	403 (0x193)	
                                        public: void __cdecl Api_3_2::CLock::Unlock(void) __ptr64	0x0000000180079ae0	0x00079ae0	466 (0x1d2)	
                                        public: void __cdecl Api_3_2::CNodeMapFactory::AddInjectionData(class Api_3_2::CNodeMapFactory & __ptr64) __ptr64	0x0000000180041c90	0x00041c90	299 (0x12b)	
                                        public: void __cdecl Api_3_2::CNodeMapFactory::GetNodeStatistics(struct Api_3_2::CNodeMapFactory::NodeStatistics_t & __ptr64) __ptr64	0x00000001800420f0	0x000420f0	384 (0x180)	
                                        public: void __cdecl Api_3_2::CNodeMapFactory::GetSupportedSchemaVersions(class GIC_3_2::gcstring_vector & __ptr64)const __ptr64	0x0000000180042020	0x00042020	389 (0x185)	
                                        public: void __cdecl Api_3_2::CNodeMapFactory::LoadAndInject(void) __ptr64	0x0000000180041d60	0x00041d60	400 (0x190)	
                                        public: void __cdecl Api_3_2::CNodeMapFactory::Preprocess(void) __ptr64	0x0000000180041db0	0x00041db0	405 (0x195)	
                                        public: void __cdecl Api_3_2::CNodeMapFactory::ReleaseCameraDescriptionFileData(void) __ptr64	0x0000000180041df0	0x00041df0	409 (0x199)	
                                        public: void __cdecl Api_3_2::CNodeWriteConcatenatorRef::_Add(class GIC_3_2::gcstring const & __ptr64,__int64) __ptr64	0x00000001800019e0	0x000019e0	483 (0x1e3)	
                                        public: void __cdecl Api_3_2::CNodeWriteConcatenatorRef::_Add(class GIC_3_2::gcstring const & __ptr64,bool) __ptr64	0x0000000180001c00	0x00001c00	484 (0x1e4)	
                                        public: void __cdecl Api_3_2::CNodeWriteConcatenatorRef::_Add(class GIC_3_2::gcstring const & __ptr64,char const * __ptr64) __ptr64	0x00000001800018b0	0x000018b0	482 (0x1e2)	
                                        public: void __cdecl Api_3_2::CNodeWriteConcatenatorRef::_Add(class GIC_3_2::gcstring const & __ptr64,class GIC_3_2::gcstring const & __ptr64) __ptr64	0x00000001800017a0	0x000017a0	480 (0x1e0)	
                                        public: void __cdecl Api_3_2::CNodeWriteConcatenatorRef::_Add(class GIC_3_2::gcstring const & __ptr64,double) __ptr64	0x0000000180001af0	0x00001af0	481 (0x1e1)	
                                        public: void __cdecl Api_3_2::CNodeWriteConcatenatorRef::_Clear(void) __ptr64	0x0000000180001d20	0x00001d20	485 (0x1e5)	
                                        public: void __cdecl Api_3_2::node_vector::const_iterator::`default constructor closure'(void) __ptr64	0x00000001800016a0	0x000016a0	294 (0x126)	
                                        public: void __cdecl Api_3_2::node_vector::iterator::`default constructor closure'(void) __ptr64	0x00000001800016a0	0x000016a0	296 (0x128)	
                                        public: void __cdecl Api_3_2::value_vector::const_iterator::`default constructor closure'(void) __ptr64	0x00000001800016a0	0x000016a0	295 (0x127)	
                                        public: void __cdecl Api_3_2::value_vector::iterator::`default constructor closure'(void) __ptr64	0x00000001800016a0	0x000016a0	297 (0x129)	
                                        void __cdecl Api_3_2::Deregister(__int64)	0x000000018002d9e0	0x0002d9e0	350 (0x15e)	
                                        void __cdecl Api_3_2::ApiTerminate(void)	0x0000000180006d20	0x00006d20	374 (0x176)	
                                        void __cdecl Api_3_2::SET_GUID(struct _GUID & __ptr64,unsigned int,unsigned short,unsigned short,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char)	0x0000000180009e40	0x00009e40	413 (0x19d)	
                                        void __cdecl Api_3_2::Value2String(__int64,class GIC_3_2::gcstring & __ptr64,enum Api_3_2::_ERepresentation)	0x000000018007b3c0	0x0007b3c0	475 (0x1db)	
                                        void __cdecl Api_3_2::Value2String(class Api_3_2::CBooleanPolyRef,class GIC_3_2::gcstring & __ptr64)	0x000000018007abe0	0x0007abe0	471 (0x1d7)	
                                        void __cdecl Api_3_2::Value2String(class Api_3_2::CFloatPolyRef,class GIC_3_2::gcstring & __ptr64)	0x000000018007ac30	0x0007ac30	472 (0x1d8)	
                                        void __cdecl Api_3_2::Value2String(class Api_3_2::CIntegerPolyRef,class GIC_3_2::gcstring & __ptr64)	0x000000018007ab80	0x0007ab80	473 (0x1d9)	
                                        void __cdecl Api_3_2::Value2String(class Api_3_2::CStringPolyRef,class GIC_3_2::gcstring & __ptr64)	0x000000018007ac80	0x0007ac80	474 (0x1da)	
                                        void __cdecl Api_3_2::Value2String(struct _GUID const & __ptr64,class GIC_3_2::gcstring & __ptr64)	0x0000000180079fe0	0x00079fe0	469 (0x1d5)	
                                        void __cdecl Api_3_2::Value2String(unsigned char * __ptr64,class GIC_3_2::gcstring & __ptr64,__int64)	0x000000018007a6d0	0x0007a6d0	470 (0x1d6)	
                                        

                                        Voici les fonctions de mon API, je possède un APIJava, mais je suppose que le Java, scécifie juste le langage.

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          5 mars 2021 à 11:48:08

                                          Cette liste de fonction sent la peinture pas très sèche : aucun mécanisme d'inter-opérabilité (ce que je cherchais, :() mais aussi des conventions de nommages parfois très très vieillotte (comme le C en préfixe des classes) et assez males respectées, une nombre de type utilisé non "contrôlé", pas de vraie logique dans les namespace, etc...

                                          Pas très pro tout ça quoi, en résume.

                                          Aucun travail de conception d'API de ce coté là.

                                          "gcstring" comme en .NET ?

                                          A bin non : https://github.com/roboception/rc_genicam_api/blob/master/genicam/library/CPP/include/Base/GCString.h

                                          Si vous cherchez les sources, elles sont là, ou votre fournisseur a éhontément pillé ce GitHub (ou l'inverse ?).

                                          JAVA ne peut accéder directement qu'à une API C, et pas C++, il y a donc une version C d'une API utilisé par le wrapper JAVA.

                                          Il serait peut-être judicieux d'utiliser cette API, si elle a le bon niveau d'abstraction.

                                          Comme je ne vois aucun lien entre l'API de "MathParser" et "API", on vous demande de faire une couche de wrapping "au kilomètre" ou de faire une un couche de wrapping pour une application .NET en particulier ?

                                          Parce que dans le second cas, le choix de la ou les dll à wrapper devrait être "évident", non ?

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                            5 mars 2021 à 11:55:10

                                            Wow, j'ai cette doc des .h, mais je ne l'ai avais pas vu sur ce site.

                                            Je suppose que le wrapper au kilomètre correspond à avoir accès à toutes les fonctions, est-ce bien cela ?

                                            Si c'est la cas, les fonctions à utiliser sont partiellement viser, par exemple j'aurais besoins de fonctions (je dois trouver et réutiliser les fonctions par mes recherches) qui me permettrait d'établir la connexion avec un appareil.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              5 mars 2021 à 12:12:53

                                              Commencez par faire un simple client en C++ pour évaluer les fonctions/classe nécessaire pour votre client en .NET.

                                              Après, le wrapping .NET avec C++/CLI, ça va être juste un peu de tuyauterie de ces classes/fonctions.

                                              Pour savoir comment ça fonctionne, bin comme c'est du C++ "classique", vous ne devriez pas trop galérer si la documentation est convenable. 

                                              -
                                              Edité par bacelar 5 mars 2021 à 12:13:10

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                                5 mars 2021 à 12:20:38

                                                Faire un simple client ?

                                                Auriez-vous des tuyaux, des liens qui me permettrait le wrapping en .NET, s'il-vous-plait ?

                                                Pour l'utilisation du du C++, je pense pouvoir trouver de la documentation pour l'utiliser, notamment la formation que OpenClassroom offre et que j'ai commencé.

                                                Quand je créer une application Console CLR et que j'essaye d'intégrer une des Dll j'obtiens une erreur: "Impossible d'ajouter la réf... car son type ou sa version n'est pas utilisable par le projet actif."

                                                -
                                                Edité par VincentL10 5 mars 2021 à 12:23:56

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  5 mars 2021 à 14:10:59

                                                  Ok, si vous n'êtes pas à l'aise avec le C++, faire des wrappers, ça va être compliqué.

                                                  Il ne faut pas un "gros" niveau en C++ : pas besoin de lamda, de template variadique, ni même de template tout courts.

                                                  Mais il faut avoir un minimum de connaissance en POO (Programmation Orientée Object) et comment elle se concrétise en terme de classes C++.

                                                  Avec ces bases, les API offertes par les API des Dll seront beaucoup plus limpides.

                                                  MAIS LE COURS DE C++ D'OpenClassroom EST UNE CALAMITE !!!!!

                                                  Je vous laisse consulter le forum C++ de ce site pour avoir plus de détails sur cette catastrophe qu'est ce cours de C++.

                                                  On n'y conseille souvent le cours de C++ du site Zeste de Savoir (mais je crois que les aspects purement objet sont encore en beta).

                                                  Le code pour des wrappers, c'est quasiment toujours la même chose à faire mais il faut quand même un peu maîtriser ce que c'est qu'une classe ou une fonction d'instance, au niveau C++.

                                                  >Auriez-vous des tuyaux, des liens qui me permettrait le wrapping en .NET, s'il-vous-plait ?

                                                  ?? Je crois qu'on a déjà discuté de 2 références que vous avez vous même dégoté et qui était très convenables. Si vous maîtrisez ce qui y est indiqué, ça devrait être déjà pas mal.

                                                  >je créer une application Console CLR

                                                  Ok, très bien. On n'est pas obligé de commencer directement par du C++/CLI pour le code client des Dll.

                                                  Mais soit, ça permettra de pousser plus loin le POC (Proof Of Concept).

                                                  >"Impossible d'ajouter la réf... car s

                                                  Que le projet soit C++/CLI ou juste C++ cela ne change rien à ce que j'ai écrit 3 messages avant, il ne faut pas "ajouter une référence" quand la Dll n'est pas un assembly .NET mais une Dll "native".

                                                  J'ai peut-être été "confusant" en utilisant le verbe "référencer" pour le fait d'ajouter les .lib dans la liste à prendre en charge par l'éditeur de lien mais ce n'est pas la même chose que "Add Reference" trouvable dans certains menus contextuels.

                                                  Je pense que "ajouter les .lib dans la liste à prendre en charge par l'éditeur de lien" sera plus clair après la lecture d'un bon cours de C++.

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                                    5 mars 2021 à 14:25:02

                                                    De ce que j'ai pus voir, tous ce qui est classes, fonctions, ressemble beaucoup au C# à quelques mots près.

                                                    J'ai été lire certains sujets du forum pour continuer.

                                                    La chose que je comprends pas c'est que sur les sites que j'ai regardé, chaque .lib et associé à un .cpp, et je ne trouve pas de documentation sur l'importation de fichier déjà créer et non créer par eux même.

                                                    Je peux créer et réutiliser un l.lib mais si j'utilise un .lib déjà existant, je peux rien faire (en tout cas je ne sais pas actuellement le faire).

                                                    http://public.iutenligne.net/informatique/algorithme-et-programmation/roose/poo/index.html 

                                                    -
                                                    Edité par VincentL10 5 mars 2021 à 14:27:40

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      5 mars 2021 à 14:42:40

                                                      La conception "Objet" qui sous-tend le C++ et le C# sont assez proche.

                                                      Pour faire un wrapper et si les concepts exportés par la Dll C++ ne sont pas trop "exotique", on peut les "confondre" (au sens fusionner), d'où mon explication sur le fait de pouvoir re-pomper la conception objet de la Dll pour la conception des classes de wrapping.

                                                      Mais le C++ peut facilement avoir des choses qui donne des petits problèmes en C#, comme l'existence des fonctions libres (sans classe), ou des opérateurs, que j'ai vu passé dans les exports de Dll. Mais, avec un peu de chance, vous n'aurez pas à les wrappers.

                                                      >chaque .lib et associé à un .cpp

                                                      Non, c'est plutôt chaque ".obj" est associé à un ".cpp".

                                                      Une librairie ".lib", c'est le regroupement de tous les ".obj" qui constitue la librairie.

                                                      S'il n'y a qu'un .cpp, oui, il y a un ".obj" donc un .lib. Mais ce n'est vraisemblablement qu'un simple exemple que vous avez vu, et il s'était pas pris la tête à faire plusieurs .cpp pour illustrer son propos.

                                                      Vous êtes un utilisateur de la Dll, pas un concepteur de Dll. De votre coté, qu'il y ait 1 ou 100 fichier .cpp pour implémenter le contenu de la Dll, ça vous est égal.

                                                      Vous n'avez pas à générer un .lib mais juste à vous en servir.

                                                      On n'en revient à la lecture d'un cours de C++ qui aborde l'usage d'une librairie dans un projet. La création d'une librairie, c'est une autre histoire.

                                                      EDIT: Pas top votre cours de "C++". beaucoup trop light, n'aborde pas la révolution qu'à été C++11 et perd du temps sur de l’allocation dynamique qu'aucun programmeur C++ ne devrait utilisé. En pref, la même calamité que le cours d'OpenClassroom (un cours "historique", à ne pas suivre).

                                                      Si vous utilisez le même mécanisme pour le .lib que vous avez générer que pour le .lib de la Dll, c'est donc que c'est vraiment un "problème" courant avec les .lib.

                                                      Il faut que le compilateur soit compatible avec celui qui a généré le .lib que vous essayez d'utiliser.

                                                      Vous n'avez pas un jeu de .lib par compilateur ou par famille de compilateur ?

                                                      DUMPBIN permet aussi d'avoir des informations sur le contenu d'un .lib.

                                                      Le compilateur/éditeur de lien indique peut-être plus de détail, non ?

                                                      -
                                                      Edité par bacelar 5 mars 2021 à 14:53:47

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                                        5 mars 2021 à 14:55:42

                                                        Pour résumé, je possède des .lib, .h, .hh, .dll, .def, .pdb,( un fichier config, .whl, .xml, .xsd.)

                                                        Je dois utiliser des fonctions de mes dll qui sont en C++ et je dois le sortir en C#.

                                                        Je ne trouve aucune documentation pour utiliser n'importe lequel de ces versions qui sont déjà créer.

                                                        Les seuls que je trouve, correspondent à créer et utiliser, ce qui ne m'intéresse pas.

                                                        Merci pour ta patience, ton aide et tes explications.

                                                        -
                                                        Edité par VincentL10 5 mars 2021 à 14:58:03

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          5 mars 2021 à 15:12:17

                                                          Il te faudra créer un assembly de classe en C++/CLI avec un ensemble de classes managées, donc accessible depuis du C#.

                                                          Ces classes managées utiliseront ce qu'il y a dans le .lib, via l'","inlude" des .h dans les .cpp du projet C++/CLI et l'ajout du ou des .lib nécessaire dans les options du projet C++/CLI.

                                                          Ce que je vois, c'est que tu es sur la bonne voie mais qu'il y a un problème de compatibilité entre le .lib et ton compilateur : MSVC.

                                                          Est-ce que c'est des .lib pour MSVC ou pour GCC ?

                                                          -
                                                          Edité par bacelar 5 mars 2021 à 15:12:30

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                                            5 mars 2021 à 15:15:17

                                                            A l'exception d'un, les .lib sont suivis de _MD_VC141_v3_2.

                                                            Je dirais donc qu'il s'agit d'un MSVC.

                                                            Comment savoir pour quelle compilateur les .lib sont ?

                                                            L'attributs du fichier est A (Propriété -> Détails)

                                                            -
                                                            Edité par VincentL10 5 mars 2021 à 15:19:54

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              5 mars 2021 à 15:30:12

                                                              MD, c'est peut-être pour Monothread ou Monothread-Debug

                                                              VC141, ça sa doit être pour la toolchain "plateformeToolset 14.1".

                                                              C'est une version qui doit être supporté par VS2017.

                                                              Vérifiez que la toolchain utilisé par votre projet est bien 141 dans les options du projet.

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter
                                                              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

                                                              Problème de DLL

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown