Conversion fichier h de vc++ à dev cpp

igorpastis Messages postés 19 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 22 avril 2005 - 1 avril 2005 à 11:55
igorpastis Messages postés 19 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 22 avril 2005 - 1 avril 2005 à 13:42
salut tout le monde


au secour !!!!


pourriez vous m'expliquer coment transformer un fichier .h créé avec visual c++ pour l'utiliser sous dev c++ !!!


merci

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
1 avril 2005 à 12:18
Normalement il n'y a rien à faire si ton entête utilise le C/C++ standard. Mainteant, s'il y a des trucs du genre __decspecl, ou autres trucs commençant avec des '_' il y aura sans doute des modifs à faire. En tout cas cela sera plus facile de répondre avec un exemple d'entête qui pose problème.
0
igorpastis Messages postés 19 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 22 avril 2005
1 avril 2005 à 13:42
voici le fichier qui me pose problème

// Definition für den Export bzw. Import des Interfaces


#ifdef __3964R_TREIBER_IMPL
#define DLLROUTINE __declspec(dllexport)
#else
#define DLLROUTINE __declspec(dllimport)
#endif


#define DLLDECL __cdecl


/*
#ifdef __cplusplus
#define DLLROUTINE extern "C"
#else
#define DLLROUTINE extern
#endif
*/


#include "windows.h"


/////////////////////////////////////////////////////////////////////////////
// Type definitions


typedef signed short int comInt;
typedef comInt comHandle_t;


typedef struct _devConfig_t
{
int baud,databit,paritaet,stopbit;
int prot;
int sswh,swh,zt,qt,to,uew;
int empf,send;
BOOL drop;
} devConfig_t;


typedef devConfig_t *devConfig_p;


typedef void (CALLBACK *comNotifCall)(int event, int status, comHandle_t handle, int userID);


/////////////////////////////////////////////////////////////////////////////
// Interface für den T3964R Treiber
// Übernommen von ECCOM


#if defined(__cplusplus)
extern "C"
{
#endif


DLLROUTINE comInt DLLDECL ComOpen(LPCSTR com_name, int read_number, int write_number, HWND hwnd);
DLLROUTINE comInt DLLDECL ComRead(comHandle_t com_handle,void FAR *read_data,int read_number, long option);
DLLROUTINE comInt DLLDECL ComWrite(comHandle_t com_handle,void FAR *write_data,int write_number,long option);
DLLROUTINE comInt DLLDECL ComEnableEvent(comHandle_t com_handle,int com_event,int user_id,int msg);
DLLROUTINE comInt DLLDECL ComDisableEvent(comHandle_t com_handle,int com_event);
DLLROUTINE comInt DLLDECL ComGetNotify(WPARAM wParam,LPARAM lParam,int FAR *user_id_ptr,
int FAR *event_ptr,int FAR *state_ptr,int FAR *handle_ptr);
DLLROUTINE comInt DLLDECL ComClose(comHandle_t com_handle);
DLLROUTINE comInt DLLDECL ComGetVersion(char FAR *ver_string);
DLLROUTINE comInt DLLDECL ComString(char FAR *errs,comInt error,comInt typ);
DLLROUTINE comInt DLLDECL ComGetReadState(comHandle_t com_handle);
DLLROUTINE comInt DLLDECL ComGetWriteState(comHandle_t com_handle);


// Erweiterungen der API um die DLL an die neue Spezifikation anzupassen
// -> Konfiguration
// -> Verwendung von Event-Handles an Stelle von Windows-Nachrich´ten


DLLROUTINE comInt DLLDECL ComReadConfig(LPCSTR devName, devConfig_p conf);
DLLROUTINE comInt DLLDECL ComWriteConfig(LPCSTR devName, devConfig_p conf,BOOL force);
DLLROUTINE comInt DLLDECL ComSetNotification(comHandle_t com_handle, comNotifCall p_callback, int userID);


#if defined(__cplusplus)
}
#endif



// Kommentar:
//
// Dieses Interface ist übernommen vom EC-COM Treiberpaket das für Windows 3.11
// entwickelt wurde. Allerdings ist die Semantik leicht geändert. Dies ist
// vor allem nötig um die geänderte Treiberspezifikation zu berücksichtigen.



///////////////////////////////////////////////////////////////////////////////////
// Fehler- und Statusmeldungswerte nach EC-COM


#define COM_OK 0x0000 // neu für Kosmetik


#define COM_ST_FREE 0x0000
#define COM_ST_BUSY 0x0001
#define COM_ST_SUCCESS 0x0003


#define COM_ST_ERROR 0x8000
#define COM_ST_2MANY 0x8001
#define COM_ST_NO_CON 0x8002
#define COM_ST_NO_TRA 0x8004
#define COM_ST_2SMALL 0x8008
#define COM_ST_BCCERR 0x8010
#define COM_ST_TIMCON 0x8020
#define COM_ST_TIMTRA 0x8040
#define COM_ST_TIMQUI 0x8080
#define COM_ST_SCC_BR 0x8100
#define COM_ST_SCC_PY 0x8200
#define COM_ST_SCC_FR 0x8400
#define COM_ST_SCC_OR 0x8800
#define COM_ST_SNDRCV 0x9000
#define COM_ST_SYSERR 0xC000


#define COM_DLL_ERROR 0xA000
#define COM_HANDLE_FALSE 0xA002
#define COM_NO_MEMORY 0xA003
#define COM_2MANY 0xA004
#define COM_2SMALL 0xA005
#define COM_DOS_ERROR 0xA006
#define COM_ALREADY_OPEN 0xA007
#define COM_NOT_OPEN 0xA008
#define COM_NO_TIMER 0xA009
#define COM_ERROR_WRITE_OLD 0xA00A
#define COM_COM_BUSY 0xA00B
#define COM_ERROR_POSTMESSAGE 0xA00C
#define COM_CLOSE_ERROR 0xA00D
#define COM_FREE_ERROR 0xA00E
#define COM_CLFR_ERROR 0xA00F
#define COM_UNKNOWN_ID 0xA010
#define COM_UNKNOWN_EVENT 0xA011
#define COM_OPEN_ERROR 0xA012
#define COM_READ_ERROR 0xA013
#define COM_WRITE_ERROR 0xA014
#define COM_SNR_ERROR 0xA015
#define COM_CNF_ERROR 0xA016


#define COM_DDFINI_ERROR 0xA064
#define COM_FRDPAR_ERROR 0xA065
#define COM_FOPPAR_ERROR 0xA066
#define COM_FRDINI_ERROR 0xA067
#define COM_STRINI_ERROR 0xA068
#define COM_OPENSTR_ERROR 0xA069


#define COM_NO_CONFIG 0xE001 // neuer Fehler
#define COM_REGISTRY 0xE002
#define COM_NO_HANDLE 0xE003


#define COM_ERROR 0xFFFF



///////////////////////////////////////////////////////////////////////////////////
// weitere Konstanten


#define COM1 "COM1"
#define COM2 "COM2"
#define COM3 "COM3"
#define COM4 "COM4"


#define COM_NO_OPTION 0L


#define COM_OPEN_STD_BUF -1


#define COM_GET_EVENT 0x0000
#define COM_READ_EVENT 0x0001
#define COM_WRITE_EVENT 0x0002


#define COM_STR 0
#define COM_STR_OPEN 1
#define COM_STR_RDWR 2
#define COM_STR_STATE 3
#define COM_STR_EVENT 4
#define COM_STR_VERSION 5
#define COM_STR_CLOSE 6
0
Rejoignez-nous