Hi everybody,
I'm working on a project that should be c++ (drivers developed for CHARON-11 emulator, are meant to be written in c++), and I'm using LabWindows, since I hope C code can do it. I don't expect you to know what Charon is, and you can live a happy life without knowing it. A happier one, maybe.....
A problem I encountered was in header chapi.h, that defines functions to be implemented. I found this:
#ifndef __CHAPI_H__
#define __CHAPI_H__
/*-----------------------------------------------------------------------------
* C H A P I -- CHaron API
*
*
*
*
*
*
*-----------------------------------------------------------------------------
*/
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _WIN32
#ifdef _M_ALPHA
#define CHAPI
#else
#define CHAPI __fastcall#endif
#define DLLENTRY __cdecl
#else
#define CHAPI
#define DLLENTRY
#endif
#ifndef __CHARON_H__
typedef void (CHAPI* sst_fun)(void* arg1, int arg2);typedef void (CHAPI* ast_handler)(void*);
typedef void (CHAPI* irq_fun)(int arg);
#endif
***
The __fastcall MS C++ directive, in red line, is not recognized in CVI, so compiler gives error at green line. I can solve this by empty definition of CHAPI macro, but I was wondering if there was a CVI equivalent for __fastcall.
I know
register c-keyword should be equivalent, but..... I would also preserve the definition as
typedef void (__fastcall* st_fun) etc..
and with
register I should write
typedef register void .....
Thanks!!!!
graziano