swnnos
Messages postés8Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention31 mars 2004
-
30 mars 2004 à 21:01
swnnos
Messages postés8Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention31 mars 2004
-
31 mars 2004 à 00:26
Bonjour je dois réutiliser un fichier d'en tête fourni par le constructeur d'une platine d'usinage. Seulement ce fichier est compatible borland mais pas visual.
Quand je compile ca plante sur les définitions des fonctions.
Pouvez vous m'aider?
Merci d'avance
les def de quelques fonctions:
extern void WINAPI MCAbort( HCTRLR hCtlr, WORD wAxis );
extern long int WINAPI MCArcCenter( HCTRLR hCtlr, WORD wAxis, short int nType, double Position );
extern long int WINAPI MCArcEndAngle( HCTRLR hCtlr, WORD wAxis, short int nType, double Angle );
extern long int WINAPI MCArcRadius( HCTRLR hCtlr, WORD wAxis, double Radius );
extern long int WINAPI MCBlockBegin( HCTRLR hCtlr, long int lMode, long int lNum );
extern long int WINAPI MCBlockEnd( HCTRLR hCtlr, long int far* lTaskID );
extern long int WINAPI MCCancelTask( HCTRLR hCtlr, long int lTaskID );
extern long int WINAPI MCCaptureData( HCTRLR hCtlr, WORD wAxis, long int lPoints, double Period, double Delay );
extern short int WINAPI MCClose( HCTRLR hCtlr );
extern short int WINAPI MCConfigureDigitalIO( HCTRLR hCtlr, WORD wChannel, WORD wMode );
extern long int WINAPI MCContourDistance( HCTRLR hCtlr, WORD wAxis, double Distance );
extern long int WINAPI MCContourPath( HCTRLR hCtlr, WORD wAxis, WORD wMode, char far* lpBuffer );
extern long int WINAPI MCDecodeStatus( HCTRLR hCtlr, DWORD dwStatus, long int lBit );
extern void WINAPI MCDirection( HCTRLR hCtlr, WORD wAxis, WORD wDir );
//
// MCERRMASK_SYSTEM group errors
//
#define MCERR_NO_CONTROLLER 1 // no controller assigned for this ID
#define MCERR_OUT_OF_HANDLES 2 // driver out of handles
#define MCERR_OPEN_EXCLUSIVE 3 // cannot open - exclusive
#define MCERR_MODE_UNAVAIL 4 // controller already open in different mode
#define MCERR_UNSUPPORTED_MODE 5 // controller doesn't support this mode
#define MCERR_INIT_DRIVER 6 // couldn't initialize the device driver
#define MCERR_NOT_PRESENT 7 // controller hardware not present;
#define MCERR_ALLOC_MEM 8 // memory allocation error
#define MCERR_WINDOWSERROR 9 // Windows function reported an error
//
// MCERRMASK_UNSUPPORTED group errors
//
#define MCERR_NOTSUPPORTED 11 // controller doesn't support this feature
#define MCERR_OBSOLETE 12 // function is obsolete
#define MCERR_AXIS_TYPE 16 // axis type doesn't support this feature
//
// MCERRMASK_AXIS group errors
//
#define MCERR_AXIS_NUMBER 15 // axis number out of range
#define MCERR_ALL_AXES 17 // cannot select "ALL AXES" for function
//
// MCERRMASK_PARAMETER group errors
//
#define MCERR_RANGE 18 // parameter was out of range
#define MCERR_CONSTANT 19 // constant value inappropriate
//
// MCERRMASK_IO group errors
//
#define MCERR_UNKNOWN_REPLY 20 // unexpected or unknown reply
#define MCERR_NO_REPLY 21 // controller failed to reply
#define MCERR_REPLY_SIZE 22 // reply size incorrect
#define MCERR_REPLY_AXIS 23 // wrong axis for reply
#define MCERR_REPLY_COMMAND 24 // reply is for different command
#define MCERR_TIMEOUT 25 // controller failed to respond
#define MCERR_BLOCK_MODE 26 // block mode error
#define MCERR_COMM_PORT 27 // communications port (RS232) error
#define MCERR_CANCEL 28 // operation was canceled
//
// Motion parameters structure
//
typedef struct {
double Acceleration;
double Deceleration;
double Velocity;
double MinVelocity;
short int Direction;
double Gain;
double Torque;
double Deadband;
double DeadbandDelay;
short int StepSize;
short int Current;
short int HardLimitMode;
short int SoftLimitMode;
double SoftLimitLow;
double SoftLimitHigh;
short int EnableAmpFault;
short int Rate;
} MCMOTION;
//
// Controller configuration structure
//
typedef struct {
short int ID;
short int ControllerType;
short int NumberAxes;
short int DigitalIO;
short int AnalogInput;
short int AnalogOutput;
short int AxisType[8];
short int PointStorage;
short int CanDoScaling;
short int CanDoContouring;
short int CanChangeProfile;
short int CanChangeRates;
short int SoftLimits;
short int MultiTasking;
short int AmpFault;
} MCPARAM;
//
// API Function Prototypes
//
extern void WINAPI MCAbort( HCTRLR hCtlr, WORD wAxis );
extern long int WINAPI MCArcCenter( HCTRLR hCtlr, WORD wAxis, short int nType, double Position );
extern long int WINAPI MCArcEndAngle( HCTRLR hCtlr, WORD wAxis, short int nType, double Angle );
extern long int WINAPI MCArcRadius( HCTRLR hCtlr, WORD wAxis, double Radius );
extern long int WINAPI MCBlockBegin( HCTRLR hCtlr, long int lMode, long int lNum );
extern long int WINAPI MCBlockEnd( HCTRLR hCtlr, long int far* lTaskID );
extern long int WINAPI MCCancelTask( HCTRLR hCtlr, long int lTaskID );
extern long int WINAPI MCCaptureData( HCTRLR hCtlr, WORD wAxis, long int lPoints, double Period, double Delay );
extern short int WINAPI MCClose( HCTRLR hCtlr );
extern short int WINAPI MCConfigureDigitalIO( HCTRLR hCtlr, WORD wChannel, WORD wMode );
extern long int WINAPI MCContourDistance( HCTRLR hCtlr, WORD wAxis, double Distance );
extern long int WINAPI MCContourPath( HCTRLR hCtlr, WORD wAxis, WORD wMode, char far* lpBuffer );
extern long int WINAPI MCDecodeStatus( HCTRLR hCtlr, DWORD dwStatus, long int lBit );
extern void WINAPI MCDirection( HCTRLR hCtlr, WORD wAxis, WORD wDir );
extern void WINAPI MCEnableAxis( HCTRLR hCtlr, WORD wAxis, short int bState );
extern long int WINAPI MCEnableBacklash( HCTRLR hCtlr, WORD wAxis, double Backlash, short int bState );
extern void WINAPI MCEnableDigitalIO( HCTRLR hCtlr, WORD wChannel, short int bState );
extern void WINAPI MCEnableGearing( HCTRLR hCtlr, WORD wAxis, WORD wMaster, double ratio, short int bState );
extern void WINAPI MCEnableJog( HCTRLR hCtlr, WORD wAxis, short int bState );
extern void WINAPI MCEnableSync( HCTRLR hCtlr, WORD wAxis, short int bState );
extern void WINAPI MCErrorNotify( HWND hWnd, HCTRLR hCtlr, DWORD ErrorMask );
extern long int WINAPI MCFindAuxEncIdx( HCTRLR hCtlr, WORD wAxis, double Position );
extern long int WINAPI MCFindEdge( HCTRLR hCtlr, WORD wAxis, double Position );
extern long int WINAPI MCFindIndex( HCTRLR hCtlr, WORD wAxis, double Position );
extern long int WINAPI MCGetAccelerationEx( HCTRLR hCtlr, WORD wAxis, double far* Acceleration );
extern WORD WINAPI MCGetAnalog( HCTRLR hCtlr, WORD wChannel );
extern long int WINAPI MCGetAuxEncIdxEx( HCTRLR hCtlr, WORD wAxis, double far* Index );
extern long int WINAPI MCGetAuxEncPosEx( HCTRLR hCtlr, WORD wAxis, double far* Position );
extern long int WINAPI MCGetBreakpointEx( HCTRLR hCtlr, WORD wAxis, double far* Breakpoint );
extern long int WINAPI MCGetCaptureData( HCTRLR hCtlr, WORD wAxis, long int lType, long int lStart,
long int lPoints, double far* lpData );
extern void WINAPI MCGetConfiguration( HCTRLR hCtlr, MCPARAM far* lpParam );
extern short int WINAPI MCGetContourConfig( HCTRLR hCtlr, WORD wAxis, MCCONTOUR far* lpContour );
extern long int WINAPI MCGetContouringCount( HCTRLR hCtlr, WORD wAxis );
extern long int WINAPI MCGetDecelerationEx( HCTRLR hCtlr, WORD wAxis, double far* Deceleration );
extern short int WINAPI MCGetError( HCTRLR hCtlr );
extern short int WINAPI MCGetDigitalIO( HCTRLR hCtlr, WORD wChannel );
extern long int WINAPI MCGetDigitalIOConfig( HCTRLR hCtlr, WORD wChannel, WORD* wMode );
extern short int WINAPI MCGetFilterConfig( HCTRLR hCtlr, WORD wAxis, MCFILTER far* lpFilter );
extern long int WINAPI MCGetFollowingError( HCTRLR hCtlr, WORD wAxis, double far* Error );
extern long int WINAPI MCGetGain( HCTRLR hCtlr, WORD wAxis, double far* Gain );
extern long int WINAPI MCGetIndexEx( HCTRLR hCtlr, WORD wAxis, double far* Index );
extern short int WINAPI MCGetJogConfig( HCTRLR hCtlr, WORD wAxis, MCJOG far* lpJog );
extern long int WINAPI MCGetLimits( HCTRLR hCtlr, WORD wAxis, short int far* HardLimitMode, short int far* SoftLimitMode,
double far* SoftLimitMinus, double far* SoftLimitPlus );
extern short int WINAPI MCGetMotionConfig( HCTRLR hCtlr, WORD wAxis, MCMOTION far* lpMotion );
extern long int WINAPI MCGetOptimalEx( HCTRLR hCtlr, WORD wAxis, double far* Optimal );
extern long int WINAPI MCGetPositionEx( HCTRLR hCtlr, WORD wAxis, double far* Position );
extern long int WINAPI MCGetProfile( HCTRLR hCtlr, WORD wAxis, WORD far* wProfile );
extern long int WINAPI MCGetRegister( HCTRLR hCtlr, long int nRegister, void far* Value, long int nType );
extern short int WINAPI MCGetScale( HCTRLR hCtlr, WORD wAxis, MCSCALE far* lpScale );
extern long int WINAPI MCGetServoOutputPhase( HCTRLR hCtlr, WORD wAxis, WORD far* wPhase );
extern DWORD WINAPI MCGetStatus( HCTRLR hCtlr, WORD wAxis );
extern long int WINAPI MCGetTargetEx( HCTRLR hCtlr, WORD wAxis, double far* Target );
extern long int WINAPI MCGetTorque( HCTRLR hCtlr, WORD wAxis, double far* Torque );
extern long int WINAPI MCGetVectorVelocity( HCTRLR hCtlr, WORD wAxis, double far* Velocity );
extern long int WINAPI MCGetVelocityEx( HCTRLR hCtlr, WORD wAxis, double far* Velocity );
extern DWORD WINAPI MCGetVersion( HCTRLR hCtlr );
extern void WINAPI MCGo( HCTRLR hCtlr, WORD wAxis );
extern long int WINAPI MCGoEx( HCTRLR hCtlr, WORD wAxis, double Param );
extern void WINAPI MCGoHome( HCTRLR hCtlr, WORD wAxis );
extern long int WINAPI MCIndexArm( HCTRLR hCtlr, WORD wAxis, double Position );
extern long int WINAPI MCIsAtTarget( HCTRLR hCtlr, WORD wAxis, double TimeOut );
extern long int WINAPI MCIsStopped( HCTRLR hCtlr, WORD wAxis, double TimeOut );
extern long int WINAPI MCLearnPoint( HCTRLR hCtlr, WORD wAxis, long int lIndex, WORD wMode );
extern void WINAPI MCMacroCall( HCTRLR hCtlr, WORD wMacro );
extern void WINAPI MCMoveAbsolute( HCTRLR hCtlr, WORD wAxis, double Position );
extern void WINAPI MCMoveRelative( HCTRLR hCtlr, WORD wAxis, double Distance );
extern long int WINAPI MCMoveToPoint( HCTRLR hCtlr, WORD wAxis, long int lIndex );
extern HCTRLR WINAPI MCOpen( short int nID, WORD wMode, LPCSTR lpszName );
extern long int WINAPI MCReopen( HCTRLR hCtlr, WORD wNewMode );
extern long int WINAPI MCRepeat( HCTRLR hCtlr, long int lCount );
extern void WINAPI MCReset( HCTRLR hCtlr, WORD wAxis );
extern void WINAPI MCSetAcceleration( HCTRLR hCtlr, WORD wAxis, double Rate );
extern void WINAPI MCSetAnalog( HCTRLR hCtlr, WORD wChannel, WORD wValue );
extern void WINAPI MCSetAuxEncPos( HCTRLR hCtlr, WORD wAxis, double Position );
extern short int WINAPI MCSetContourConfig( HCTRLR hCtlr, WORD wAxis, MCCONTOUR far* lpContour );
extern void WINAPI MCSetDeceleration( HCTRLR hCtlr, WORD wAxis, double Rate );
extern short int WINAPI MCSetFilterConfig( HCTRLR hCtlr, WORD wAxis, MCFILTER far* lpFilter );
extern long int WINAPI MCSetGain( HCTRLR hCtlr, WORD wAxis, double Gain );
extern short int WINAPI MCSetJogConfig( HCTRLR hCtlr, WORD wAxis, MCJOG far* lpJog );
extern long int WINAPI MCSetLimits( HCTRLR hCtlr, WORD wAxis, short int HardLimitMode, short int SoftLimitMode,
double SoftLimitMinus, double SoftLimitPlus );
extern void WINAPI MCSetModuleOutputMode( HCTRLR hCtlr, WORD wAxis, WORD wMode );
extern short int WINAPI MCSetMotionConfig( HCTRLR hCtlr, WORD wAxis, MCMOTION far* lpMotion );
extern void WINAPI MCSetOperatingMode( HCTRLR hCtlr, WORD wAxis, WORD caxis, WORD mode );
extern void WINAPI MCSetPosition( HCTRLR hCtlr, WORD wAxis, double Position );
extern void WINAPI MCSetProfile( HCTRLR hCtlr, WORD wAxis, WORD wMode );
extern long int WINAPI MCSetRegister( HCTRLR hCtlr, long int nRegister, void far* Value, long int nType );
extern short int WINAPI MCSetScale( HCTRLR hCtlr, WORD wAxis, MCSCALE far* lpScale );
extern void WINAPI MCSetServoOutputPhase( HCTRLR hCtlr, WORD wAxis, WORD wPhase );
extern long int WINAPI MCSetTimeoutEx( HCTRLR hCtlr, double TimeOut, double far* OldTimeOut );
extern long int WINAPI MCSetTorque( HCTRLR hCtlr, WORD wAxis, double Torque );
extern long int WINAPI MCSetVectorVelocity( HCTRLR hCtlr, WORD wAxis, double Velocity );
extern void WINAPI MCSetVelocity( HCTRLR hCtlr, WORD wAxis, double Rate );
extern void WINAPI MCStop( HCTRLR hCtlr, WORD wAxis );
extern long int WINAPI MCTranslateErrorEx( short int nError, LPSTR szBuffer, long int nLength );
extern void WINAPI MCWait( HCTRLR hCtlr, double Period );
extern void WINAPI MCWaitForDigitalIO( HCTRLR hCtlr, WORD wChannel, short int bState );
extern long int WINAPI MCWaitForEdge( HCTRLR hCtlr, WORD wAxis, short int bState );
extern long int WINAPI MCWaitForIndex( HCTRLR hCtlr, WORD wAxis, double TimeOut );
extern void WINAPI MCWaitForPosition( HCTRLR hCtlr, WORD wAxis, double Position );
extern void WINAPI MCWaitForRelative( HCTRLR hCtlr, WORD wAxis, double Distance );
extern void WINAPI MCWaitForStop( HCTRLR hCtlr, WORD wAxis, double Period );
extern void WINAPI MCWaitForTarget( HCTRLR hCtlr, WORD wAxis, double Period );
//
// Low level controller access commands
//
extern short int WINAPI pmccmd( HCTRLR hCtlr, short int nBytes, void far* lpBuffer );
extern long int WINAPI pmccmdex( HCTRLR hCtlr, WORD wAxis, WORD wCmd, void FAR* Argument, long int nType );
extern short int WINAPI pmcgetc( HCTRLR hCtlr );
extern void WINAPI pmcgetram( HCTRLR hCtlr, WORD wOffset, void far* lpBuffer, short int nBytes );
extern short int WINAPI pmcgets( HCTRLR hCtlr, char far* lpszBuffer, short int nBytes );
extern short int WINAPI pmcputc( HCTRLR hCtlr, short int nChar );
extern void WINAPI pmcputram( HCTRLR hCtlr, WORD wOffset, void far* lpBuffer, short int nBytes );
extern short int WINAPI pmcputs( HCTRLR hCtlr, char far* lpszBuffer );
extern short int WINAPI pmcrdy( HCTRLR hCtlr );
extern short int WINAPI pmcrpy( HCTRLR hCtlr, short int nBytes, char far* lpBuffer );
extern long int WINAPI pmcrpyex( HCTRLR hCtlr, void FAR* Reply, long int nType );
//
// Old functions supported in 16-bit mode only
//
#ifndef _WIN32
extern double WINAPI MCGetAcceleration( HCTRLR hCtlr, WORD wAxis );
extern double WINAPI MCGetAuxEncIdx( HCTRLR hCtlr, WORD wAxis );
extern double WINAPI MCGetAuxEncPos( HCTRLR hCtlr, WORD wAxis );
extern double WINAPI MCGetBreakpoint( HCTRLR hCtlr, WORD wAxis );
extern double WINAPI MCGetDeceleration( HCTRLR hCtlr, WORD wAxis );
extern double WINAPI MCGetIndex( HCTRLR hCtlr, WORD wAxis );
extern double WINAPI MCGetOptimal( HCTRLR hCtlr, WORD wAxis );
extern double WINAPI MCGetPosition( HCTRLR hCtlr, WORD wAxis );
extern double WINAPI MCGetTarget( HCTRLR hCtlr, WORD wAxis );
extern double WINAPI MCGetVelocity( HCTRLR hCtlr, WORD wAxis );
extern double WINAPI MCSetTimeout( HCTRLR hCtlr, double TimeOut );
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 30 mars 2004 à 23:23
Tu travailles avec un lib pour la dll. Tu as bien indique le lib pour le linker je pense.
Sous:
#ifndef _INC_MCAPI // include only once
#define _INC_MCAPI
#ifdef __cplusplus // avoid c++ name mangling
extern "C" {
#endif
// tu ajoutes:
#include <windows.h> // pour WORD, WINAPI etc...
ensuite si merde encore essaie en enlevant 'extern' devant la 1ere fonction. Si l'erreur indique la seconde fonction tu les enleves tous.
Par contre ne JAMAIS enlever WINAPI qui est #define de __stdcall sinon ton prog fait crash.
swnnos
Messages postés8Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention31 mars 2004 31 mars 2004 à 00:13
Là en ce moment oui c'est un projet win32console appliation avec juste le .h et un .cpp qui appelle le .h.
Mais à terme ce sera implanté dans une interface graphique MFCappwizard...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 31 mars 2004 à 00:20
Alors va direct sur un prog win32, mfc ou non mais nenni console. Il y a besoin de windows.h pour define de WORD, WINAPI etc...
Sinon tu dois ajouter ces define a la main et faudra les enlever ensuite, pas rentable.