none
Les classe de ibpp RRS feed

  • Question

  • J'ésssaie de résoudre les problèmes de IBPP.

    IBPP est un shareware qui interface les bases de données

    j'ai des primitives qui sortaient en unresolved external

    et quand j'ai cherché j'ai trouvé le code qui ne faisait pas référence à sa classe d'appartenance

    j'ai donc précisé cela dans l'appel de la requête: status.DPB::Reset();

            RB result(8000);
    	char request[] = {isc_info_svc_get_users};
    	status.DPB::Reset();
    	(*gds.Call()->m_service_query)(status.Self(), &mHandle, 0, 0, 0,

    et alors le compilateur m'a dit

    1>..\..\..\..\DBMS\OnLineDBManager\ibpp-2-5-3-1-src\core\service.cpp(235): error C2039: 'DPB' : n'est pas membre de 'ibpp_internals::IBS'
    1>          D:\usr\Memoria\dev\DBMS\MissionDBManager\com\_ibpp.h(585) : voir la déclaration de 'ibpp_internals::IBS'
    1>..\..\..\..\DBMS\OnLineDBManager\ibpp-2-5-3-1-src\core\service.cpp(235): error C2662: 'ibpp_internals::DPB::Reset' : impossible de convertir un pointeur 'this' de 'ibpp_internals::IBS' en 'ibpp_internals::DPB &'
    1>          Raison : impossible de convertir de 'ibpp_internals::IBS' en 'ibpp_internals::DPB'
    1>          La conversion requiert un second constructeur ou opérateur de conversion défini par l'utilisateur
    1>  Génération de code en cours...
    je ne sait pas ce que je dois faire. C'est un shareware et j’hésite à le modifier profondément.


    Jean Noël Martin

    mercredi 11 juillet 2012 17:43

Réponses

Toutes les réponses

  • " qui ne faisait pas référence à sa classe d'appartenance" ?

    Je ne comprend pas. :-(

    "status.DPB::" un pointeur sur membre ??? (XXX.YYY::ZZZ)

    Si status est un namespace "racine", préfixez-le avec "::" pour éviter des ambigüités.

    Si status est une variable ou un membre et Reset un méthode (static ou pas )  du membre DPB, c'est plutot "status.DPB.Reset".

    Si status est un namespace racine et Reset une fonction libre, c'est plutot "::status::DPB::Reset".

    Si IBPP est fournit avec une lib ou une Dll d'interconnexion, utilisez un programme comme undname.exe (dans le répertoire VC/Bin/ de VS) pour la lib, et dependency walker pour la Dll, pour bien vérifier le mangling des fonctions exportées.


    Paul Bacelar, Ex - MVP VC++

    jeudi 12 juillet 2012 08:23
    Modérateur
  • Ce problème a été résolu. Jusqu'à la prochaine fois, par l'effet du Saint Esprit, c'est bon pour Saint Thomas

    Jean Noël Martin

    • Marqué comme réponse JeanNoel53 vendredi 13 juillet 2012 18:04
    vendredi 13 juillet 2012 18:04