BTrieve + Langage C = Erreur compilation

geronimhurl -  
 geronimhurl -
J'ai essayé à plusieurs reprises de compiler un programme test en C qui permettrait d'utiliser les API de BTRIEVE.

Rien à faire j'ai toujours et encore un erreur de compilation.
Si quelqu'un a réussi à mettre en oeuvre ce miracle, je suis très très preneur.

J'utilise DJGPP, et dans la doc il est conseillé d'utiliser Borland (TC).

Pourtant la syntaxe est identique entre ces 2 compilateurs.

Il y avait un #define à mettre pour que le compilateur sache quel environnement est utilisé...

Si quelqu'un se sent l'âme d'un grand samaritain, je cherche de l'aide.

Parceque pour l'instant, dans l'entreprise où je suis, BTrieve est interfacé avec QuickBasic.

Et le QuickBasic, ça me sort par les trous de nez. et par le trou du *BIP* aussi.

Merci d'avance !!!!

5 réponses

  1. leprechaun Messages postés 266 Date d'inscription   Statut Membre 10
     
    Quelle est l'err de compilation?

    Si tu peux la retranscrire sur le post ce sera plus simple de t'aider.

    Un jour je serai Castor a la place de Castor!!!
    Good Luck
    0
  2. geronimhurl
     
    Béh en fait j'ai un appel de fonction qui trouve pas sa... fonction.

    J'inclue une librairie qui est blindée de #ifdef et ce genre de mots pour le précompilateur ou un truc de ce genre.

    Il est demandé de faire un #define avec ces valeurs :
    BTI_DOS - DOS 16-bit Apps
    BTI_DOS_32R - Extended DOS with Rational + bstub.exe 32-bit Apps
    BTI_DOS_32P - Extended DOS with Phar Lap 6.0 32-bit Apps
    BTI_DOS_32B - Extended DOS with Borland PowerPack 32-bit Apps
    BTI_DOS_16B - Extended DOS with Borland PowerPack 16-bit Apps
    BTI_WIN - MS WINDOWS 16-bit Apps
    BTI_WIN_32 - Windows NT and Windows 95 32-bit Apps
    BTI_OS2 - OS2 16-bit Apps
    BTI_OS2_32 - OS2 32-bit Apps
    BTI_NLM - NetWare NLM 32-bit Apps
    BTI_SQL - For 32-Bit OS2 SSQL Apps
    BTI_SOL - Solaris 32-bit Apps
    BTI_HPUX - HP Unix
    BTI_AIX - IBM Aix
    BTI_IRIX - Irix
    BTI_DEC_UNIX - DEC Unix

    je compile sous le DOS de windows NT4

    j'ai donc choisi BTI_DOS_32R, parceque avec BTI_DOS, c'est lamentable le nombre d'erreur de compilation que j'ai.

    je dois inclure btrapi.h et btrconst.h
    le problème c'est que dans btrapi.h, il y a les définitions des fonctions, mais pas le code.

    Donc il faut que j'inclue aussi btrapi.c

    J'y comprends rien, ça m'agace.

    Dans le bouquin de référence de BTRIEVE, ils parlent d'un fichier qui s'appelle MSCXBTRV.c , mais je l'ai pô.

    Si quelqu'un trouve ça je suis preneur.

    Je pense pas que vous puissiez réellement m'aider, mais si quelqu'un en a le courage, je serai éternellement (24 sec.) redevable :D :D :D
    0
    1. leprechaun Messages postés 266 Date d'inscription   Statut Membre 10
       
      Merci pour les infos, mais j'aurais preferé le msg de ton compilateur (le msg d'erreur).

      En fait je ne connais pas BTRIEVE mais je pourrais peut etre t'aider si tu envois le rapport de compilation.

      A priori, j'ai l'impression qu'il te manque des librairies car si les fichiers d'en tete de la fonction qui ne fonctionne pas sont present,
      il me semble que ca ne peut etre que ca.

      Un jour je serai Castor a la place de Castor!!!
      Good Luck
      0
      1. geronimhurl > leprechaun Messages postés 266 Date d'inscription   Statut Membre
         
        In file included from test2.c:9:
        d:/djgpp/include/btrapi.c:75: parse error before '*' token
        d:/djgpp/include/btrapi.c:75: `cdecl' declared as function returning a function
        d:/djgpp/include/btrapi.c:75: field `cdecl' declared as a function
        d:/djgpp/include/btrapi.c: In function `BTRVID':
        d:/djgpp/include/btrapi.c:553: structure has no member named `functionPtr'
        d:/djgpp/include/btrapi.c: In function `BTRV':
        d:/djgpp/include/btrapi.c:614: structure has no member named `functionPtr'

        voici mes messages d'erreur.

        Tout semble lié à la déclaration du pointeur de fonction.

        ça doit pas être la même sous TC que sous DJGPP...
        je vais continuer de chercher mais voici le code de la ligne 75 ...

        #if defined( BTI_DOS_32R )
        typedef struct
        {
        char *Name;
        void cdecl (*functionPtr) ( pmswParmBlock *bP ); //ligne 75
        } IMPORTS[];
        #define PROCESS7B 75
        IMPORTS * _ImportedFunctions_ = 0;
        #endif

        qu'est qu'elle a de pas bien cette déclaration ?

        je m'en vais me rafraîchir la tête dans les archives de commentçamarche pour trouver la déclaration d'un pointeur de fonction, zou...
        A+
        0
      2. leprechaun Messages postés 266 Date d'inscription   Statut Membre 10 > geronimhurl
         
        void (cdecl*) functionPtr ( pmswParmBlock *bP ); //ligne 75

        (void cdecl*) functionPtr ( pmswParmBlock *bP ); //ligne 75

        Essais ses deux formes pour la ligne 75 mais je ne suis sure de rien.
        D'ailleurs toute bonne volonté pour ce pb serait la bienvenue.

        Un jour je serai Castor a la place de Castor!!!
        Good Luck
        0
      3. geronimhurl > geronimhurl
         
        void (*cdecl) ( pmswParmBlock *bP );

        voilà la ligne que j'ai mis en remplacement, et ça l'air de passer la compi.

        ça m'étonnerait que ça marche plus tard, mais bo,n j'aurai essayé...

        je te tiens au courant si j'y arrive, mais à priori, sauf si quelqu'un a déjà réalisé cet interfaçage, personne peut trop trop m'aider, puisqu'en fait y a pleins de toutes petites erreurs partout...

        To be continued.
        0
      4. geronimhurl > geronimhurl
         
        j'ai mis ça.

        void (*cdecl) ( pmswParmBlock *bP );

        ça marche, mais bon ...

        maintenant ça me file des erreurs de compilations un peu plus utilisables...

        to be continued
        0
  3. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    hop, un ascenceur pour cause de ch'ti pb ;-)
    .  .
    \_/
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. geronimhurl
     
    Si quelqu'un trouve un moyen d'interfacer un langage C avec du Btrieve, je suis preneur... pitiééééééé

    J'ai abandonné l'idée d'interfacer avec DJGPP, j'utilise(j'essaie) TC.

    Mais il me semble que l'install de TC se soit mal passée...

    ça FAIT CHIER !
    0