[C] erreur de compilation
foobar47
-
foobar47 -
foobar47 -
Bonjour,
je viens de compiler mon prog en language C et voilà ce qu'il me dit:
Illegal use of type name 'USHORT'.
Type error: pointer expected.
Operands of = have illegal types 'pointer to USHORT' and 'int'.
Voici ou ce situe le problème:
*******----------mon code---------**********
...
int FUNCTIONFLAGS cviTriggerReadEx(int const nBase, long const lTime, int const nUnitType, USHORT* pArray);
...
int nPixelNo = 2086;
long lIntTime=11;
USHORT *PixArray;
...
PixArray = new USHORT[nPixelNo]; <--
/*de ce fait, je ne peux utiliser la fonction suivante :( */
cviTriggerReadEx(0x300, lIntTime, 0,PixArray);
En éspèrant que qulqu'un va me répondre...
Merci :)
je viens de compiler mon prog en language C et voilà ce qu'il me dit:
Illegal use of type name 'USHORT'.
Type error: pointer expected.
Operands of = have illegal types 'pointer to USHORT' and 'int'.
Voici ou ce situe le problème:
*******----------mon code---------**********
...
int FUNCTIONFLAGS cviTriggerReadEx(int const nBase, long const lTime, int const nUnitType, USHORT* pArray);
...
int nPixelNo = 2086;
long lIntTime=11;
USHORT *PixArray;
...
PixArray = new USHORT[nPixelNo]; <--
/*de ce fait, je ne peux utiliser la fonction suivante :( */
cviTriggerReadEx(0x300, lIntTime, 0,PixArray);
En éspèrant que qulqu'un va me répondre...
Merci :)
A voir également:
- [C] erreur de compilation
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Comment recuperer whatsapp supprimé par erreur - Guide
10 réponses
Hi,
new c'est un mot réservé C++ non?
Utilise malloc....
Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
new c'est un mot réservé C++ non?
Utilise malloc....
Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
pas la peine de souligner langage c, surtout quand c en est pas.
USHORT: c est pas du C
nUnit: c est pas du C
new: c est pas du C
win++ stroke back!
USHORT: c est pas du C
nUnit: c est pas du C
new: c est pas du C
win++ stroke back!
Ok, merci pour les réponses ;))
Mais alors, vu que je n'y connais strictement rien en C++, quels sont les équivalents de USHORT, nUnit et new en language C ?
Ou si vous ne savez pas, à quoi ils correspondent ?
Merci d'avance.
Mais alors, vu que je n'y connais strictement rien en C++, quels sont les équivalents de USHORT, nUnit et new en language C ?
Ou si vous ne savez pas, à quoi ils correspondent ?
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
USHORT, c'est "unsigned short" et je ne sais pas ou pouet a vu nUnit
Je suis un gaucher contrariant. C'est plus fort que moi,
il faut que j'emmerde les droitiers.
Je suis un gaucher contrariant. C'est plus fort que moi,
il faut que j'emmerde les droitiers.
Merci bien ariock,
ça m'est très utile.
Mais en revanche, nUnit ne cause pas de problème est n'est à priori pas un mot résèrvé C++... :!
Bref, encore merci.
:))
ça m'est très utile.
Mais en revanche, nUnit ne cause pas de problème est n'est à priori pas un mot résèrvé C++... :!
Bref, encore merci.
:))
Salut foobar47,
C'est claire "new" c'est en C++. En ce qui concerne "'USHORT", c'est un type defini dans ton soft, exemple :
typedef USHORT unsigned short;
Donc dans ton soft au lieu d'utiliser "unsigned short", tu utilises 'USHORT", de meme si tu en a assez de taper "unsigned char" dans ton code tu peux definir :
typedef UCHAR unsigned char;
voila ... donc je pense que "USHORT" est defini dans un fichier *.H, recherche "USHORT" sur ton disque dans les fichiers *.C ou *.CPP (parce qu'en fait ca ressemble plus a du C++ que du C, c'est claire !
A toi de jouer ...
C'est claire "new" c'est en C++. En ce qui concerne "'USHORT", c'est un type defini dans ton soft, exemple :
typedef USHORT unsigned short;
Donc dans ton soft au lieu d'utiliser "unsigned short", tu utilises 'USHORT", de meme si tu en a assez de taper "unsigned char" dans ton code tu peux definir :
typedef UCHAR unsigned char;
voila ... donc je pense que "USHORT" est defini dans un fichier *.H, recherche "USHORT" sur ton disque dans les fichiers *.C ou *.CPP (parce qu'en fait ca ressemble plus a du C++ que du C, c'est claire !
A toi de jouer ...
Tu devrais ptete commencer par vérifier et nous dire si ton compilo est un compilo C ou C++... Ca serait pas mal que toi aussi tu saches en quel langage (et pas language, ça c'est la version anglaise ;-) )tu développes, non ?
@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
En ce qui concerne "new", malloc est un équivalent un peu particulier car tu ne doit pas oublier de liberer la mémoire lorque tu as fini de l'utiliser en faisant un "free".
De plus pour utiliser malloc il faut lui spécifier la taille de l'espace mémoire a réservé, par exemple :
malloc(sizeof(USHORT)); /*dans le cas ou USHORT est bien un typedef*/
Aller ciao!
De plus pour utiliser malloc il faut lui spécifier la taille de l'espace mémoire a réservé, par exemple :
malloc(sizeof(USHORT)); /*dans le cas ou USHORT est bien un typedef*/
Aller ciao!
Salut,
merci pour vos réponses,
en effet, la source que j'ai récuperée est en C++, de plus elle faisait appel à une DLL.
Pour faire appel à une DLL, en C, savez comment proceder? car je l'ai fait, mais je ne suis pas sur de mon coups :
#define DLLIMPORT extern "C" __declspec(dllimport)
#define FUNCTIONFLAGS __stdcall
int FUNCTIONFLAGS cviTestCard(short nDeviceNumber, short nBoardType, short nGain);
int FUNCTIONFLAGS cviSetIntEx(int const nBase, int const nPixelNumber, long const lTime, int nDeviceNumber, int nChannel, int nGain);
int FUNCTIONFLAGS cviSetInt(int const nTriggerMode, long const lTime);
mon compilateur me renvoie une erreur du type:
Redefinition de la macro DLLIMPORT
En ce qui le concerne, mon compilateur, c'est le compilateur integré au logiciel LabWindows, pour ceux qui connaissent, et à priori, il ne gère que le C.
Pour le new, je l'ai remplacé par malloc:
PixArray =(unsigned short*) malloc(nPixelNo * sizeof(int*)); en C
à la place de :
PixArray = new USHORT[nPixelNo] en C++
j'ai pris soin de liberer la mémoire comme ceci:
free(PixArray);
qui remplace le delete.
Cependant, j'ai l'erreur suivante lors de l'execution:
Pointer arithmetic involving pointer to freed memory
Si vous avez des idées ou des éléments de réponses, merci.
Merci encore pour vos réponses.
Linux is like sex, it's better when it's free.
C'est ceux qui s'en servent pas qui en disent du mal.
merci pour vos réponses,
en effet, la source que j'ai récuperée est en C++, de plus elle faisait appel à une DLL.
Pour faire appel à une DLL, en C, savez comment proceder? car je l'ai fait, mais je ne suis pas sur de mon coups :
#define DLLIMPORT extern "C" __declspec(dllimport)
#define FUNCTIONFLAGS __stdcall
int FUNCTIONFLAGS cviTestCard(short nDeviceNumber, short nBoardType, short nGain);
int FUNCTIONFLAGS cviSetIntEx(int const nBase, int const nPixelNumber, long const lTime, int nDeviceNumber, int nChannel, int nGain);
int FUNCTIONFLAGS cviSetInt(int const nTriggerMode, long const lTime);
mon compilateur me renvoie une erreur du type:
Redefinition de la macro DLLIMPORT
En ce qui le concerne, mon compilateur, c'est le compilateur integré au logiciel LabWindows, pour ceux qui connaissent, et à priori, il ne gère que le C.
Pour le new, je l'ai remplacé par malloc:
PixArray =(unsigned short*) malloc(nPixelNo * sizeof(int*)); en C
à la place de :
PixArray = new USHORT[nPixelNo] en C++
j'ai pris soin de liberer la mémoire comme ceci:
free(PixArray);
qui remplace le delete.
Cependant, j'ai l'erreur suivante lors de l'execution:
Pointer arithmetic involving pointer to freed memory
Si vous avez des idées ou des éléments de réponses, merci.
Merci encore pour vos réponses.
Linux is like sex, it's better when it's free.
C'est ceux qui s'en servent pas qui en disent du mal.