BTrieve + Langage C = Erreur compilation

Fermé
geronimhurl - 17 juin 2002 à 17:48
 geronimhurl - 19 juin 2002 à 16:44
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

geronimhurl
18 juin 2002 à 10:59
Up Up
0
leprechaun Messages postés 265 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 18 mars 2003 10
18 juin 2002 à 13:17
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
geronimhurl
18 juin 2002 à 14:04
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
leprechaun Messages postés 265 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 18 mars 2003 10
18 juin 2002 à 15:59
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
geronimhurl > leprechaun Messages postés 265 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 18 mars 2003
18 juin 2002 à 16:10
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
leprechaun Messages postés 265 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 18 mars 2003 10 > geronimhurl
18 juin 2002 à 17:21
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
geronimhurl > geronimhurl
18 juin 2002 à 23:48
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
geronimhurl > geronimhurl
18 juin 2002 à 23:48
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
teebo Messages postés 33478 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 795
19 juin 2002 à 00:06
hop, un ascenceur pour cause de ch'ti pb ;-)
.  .
\_/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
geronimhurl
19 juin 2002 à 16:44
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