Red Hat ES
Btrieve sample compiles and run, also test database work fine....
Here is the actual code in C:
void btrvCheckStatus()
{
BTI_BYTE btrieveLoaded = FALSE;
BTI_BYTE posBlock1[128];
VERSION_STRUCT versionBuffer[3];
BTI_WORD dataLen = 0;
BTI_BYTE keyBuf1[255];
BTI_WORD keyNum = 0;
BTI_SINT status;
BTI_SINT i;
memset(versionBuffer, 0, sizeof(versionBuffer));
dataLen = sizeof(versionBuffer);
printf("Checking Btrieve Versions...\r\n");
status = BTRVID(B_VERSION,
posBlock1,
&versionBuffer,
&dataLen,
keyBuf1,
keyNum,
(BTI_BUFFER_PTR)&clientID);
if (status == B_NO_ERROR) {
printf("Btrieve Versions returned are: \r\n");
for (i = 0; i < 3; i++) {
if (versionBuffer[i].Version != 0) {
printf(" %d.%d %c\r\n", versionBuffer[i].Version,
versionBuffer[i].Revision,
versionBuffer[i].MKDEId);
}
}
printf("\n");
btrieveLoaded = TRUE;
} else {
printf("Btrieve B_VERSION status = %d\n", status);
if (status != B_RECORD_MANAGER_INACTIVE) {
btrieveLoaded = TRUE;
}
}
}
The GPF occurs in the bold BTRVID call....
Thanx and cheers
F.