Je tente de compiler une application 32 bits. Je suis au courant des problèmes avec cela mais c'est pourquoi il est compilé sur la version 64 bits.Problème avec MDAC lors de la tentative de compilation dans VS2008 à l'aide de la plate-forme cible x64 bits
Je suis accroché à ce problème. L'application utilise beaucoup de choses SQL.
Dans le fichier sqltypes.h: (fourni par MDAC)
#ifdef _WIN64
typedef INT64 SQLLEN;
typedef UINT64 SQLULEN;
typedef UINT64 SQLSETPOSIROW;
#else
#define SQLLEN SQLINTEGER
#define SQLULEN SQLUINTEGER
#define SQLSETPOSIROW SQLUSMALLINT
#endif
//For Backward compatibility
#ifdef WIN32
typedef SQLULEN SQLROWCOUNT;
typedef SQLULEN SQLROWSETSIZE;
typedef SQLULEN SQLTRANSID;
typedef SQLLEN SQLROWOFFSET;
#endif
Pour une raison quelconque lorsque sa compilé sur 32 plate-forme de bits, il fonctionne très bien Mais quand j'essayer de construire sur 64, il devient fou furieux.
Erreur 61 erreur C2146: erreur de syntaxe: manquant ';' avant l'identificateur 'SQLLEN' .. \ external \ microsoft sdk \ include \ sqltypes.h 50
Il ne reconnaît pas INT64, UINT64.
Y at-il quelque chose que je dois activer afin qu'il fonctionne sous 64 processus de construction? Vous avez manqué #include ou #define?
Toute aide serait grande
Merci
Indiquez les autres en-têtes que vous #incluez. Avez-vous # inclus Windows.h en premier? –
Êtes-vous sûr que INT64 et UINT64 sont définis? Sur mon système, sqltypes.h dépend d'un autre en-tête pour les définir. Si votre système 64 bits trouve une version de ce fichier qui n'a pas ces définitions, cela expliquerait le problème. – ThatBlairGuy
Je suis assez sûr que c'est le problème. En fait, à ce stade, je suis sûr parce qu'une fois que j'ai ajouté typedef avant d'appeler sqltypes cela fonctionne – grobartn