ik zit met een vervelend probleem met de syntax/compile controle van Microsoft Visual Studio .NET 2003.
Voor Navision database kan ik connectie maken met de cfront koppeling. Ik heb hierbij de cf.h, libload.c en de cfront.dll.
als eerste in mijn applicatie roep ik SessionInit("CFRONT.DLL");
de functie is zo gedefineerd
Bij hGlobalSession = malloc(sizeof(DLL)); gaat ie over zijn nek met
error C2440: '=' : cannot convert from 'void *' to 'HDLLSESSION'
Als ik typecast: hGlobalSession = (HDLLSESSION)malloc(sizeof(DLL));
Dan krijg ik een linker error dat ik de functies, die ik in de main gebruik, niet kan vinden.
Maar waarom dit topic niet in programming staat is als volgt. Als ik het zelfde project met Dev-c++ compile geeft hij niet de convert error en werkt het.
Ik denk dat het ligt aan een strictere controle door VS, maar hoe kan ik die subtieler zetten? Heb zitten zoeken bij project properties maar daar vind ik alleen over warning level. Dit is een error en geen warning...
Voor Navision database kan ik connectie maken met de cfront koppeling. Ik heb hierbij de cf.h, libload.c en de cfront.dll.
als eerste in mijn applicatie roep ik SessionInit("CFRONT.DLL");
de functie is zo gedefineerd
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| //relevante typedefs typedef unsigned char DBL_U8; typedef signed short int DBL_S16; //relevant typedef struct DLL { char DLLName[20]; DBL_S16 DLLLoaded; DBL_DLLHandleType* DLLHandle; } DLL; typedef struct DLL* HDLLSESSION; static HDLLSESSION hGlobalSession = NULL; void SessionInit(DBL_U8* DLLName) { hGlobalSession = malloc(sizeof(DLL)); strcpy(hGlobalSession->DLLName, (char*)DLLName); hGlobalSession->DLLLoaded = 0; DBL_Init(); } |
Bij hGlobalSession = malloc(sizeof(DLL)); gaat ie over zijn nek met
error C2440: '=' : cannot convert from 'void *' to 'HDLLSESSION'
Als ik typecast: hGlobalSession = (HDLLSESSION)malloc(sizeof(DLL));
Dan krijg ik een linker error dat ik de functies, die ik in de main gebruik, niet kan vinden.
Maar waarom dit topic niet in programming staat is als volgt. Als ik het zelfde project met Dev-c++ compile geeft hij niet de convert error en werkt het.
Ik denk dat het ligt aan een strictere controle door VS, maar hoe kan ik die subtieler zetten? Heb zitten zoeken bij project properties maar daar vind ik alleen over warning level. Dit is een error en geen warning...
[This space is for rent]