#include <stdio.h>
#include <tchar.h>
#define ICUBE_USE_WINDOWS_HEADERS
#include "NET_ICube_API.h"
extern "C" {
PICubeSDK_Init ICubeSDK_Init;
PICubeSDK_Open ICubeSDK_Open;
PICubeSDK_Close ICubeSDK_Close;
PICubeSDK_IsOpen ICubeSDK_IsOpen;
PICubeSDK_IsOpenEx ICubeSDK_IsOpenEx;
PICubeSDK_GetVersion ICubeSDK_GetVersion;
PICubeSDK_GetFWVersion ICubeSDK_GetFWVersion;
PICubeSDK_GetFPGAVersion ICubeSDK_GetFPGAVersion;
PICubeSDK_GetSerialNum ICubeSDK_GetSerialNum;
PICubeSDK_SetCallback ICubeSDK_SetCallback;
PICubeSDK_Start ICubeSDK_Start;
PICubeSDK_IsStarted ICubeSDK_IsStarted;
PICubeSDK_Stop ICubeSDK_Stop;
PICubeSDK_SetResolution ICubeSDK_SetResolution;
PICubeSDK_GetResolution ICubeSDK_GetResolution;
PICubeSDK_GetResolutionRange ICubeSDK_GetResolutionRange;
PICubeSDK_GetSize ICubeSDK_GetSize;
PICubeSDK_SetMode ICubeSDK_SetMode;
PICubeSDK_GetModeList ICubeSDK_GetModeList;
PICubeSDK_SetBinSkip ICubeSDK_SetBinSkip;
PICubeSDK_GetBinSkip ICubeSDK_GetBinSkip;
PICubeSDK_GetBinSkipList ICubeSDK_GetBinSkipList;
PICubeSDK_SaveToFile ICubeSDK_SaveToFile;
PICubeSDK_SaveAvi ICubeSDK_SaveAvi;
PICubeSDK_SetTrigger ICubeSDK_SetTrigger;
PICubeSDK_GetTrigger ICubeSDK_GetTrigger;
PICubeSDK_SetCamParameter ICubeSDK_SetCamParameter;
PICubeSDK_GetCamParameter ICubeSDK_GetCamParameter;
PICubeSDK_GetCamParameterRange ICubeSDK_GetCamParameterRange;
PICubeSDK_GetParamAuto ICubeSDK_GetParamAuto;
PICubeSDK_SetParamAuto ICubeSDK_SetParamAuto;
PICubeSDK_SetParamAutoDef ICubeSDK_SetParamAutoDef;
PICubeSDK_SetParamOnePush ICubeSDK_SetParamOnePush;
PICubeSDK_CamParameterSet ICubeSDK_CamParameterSet;
PICubeSDK_GetName ICubeSDK_GetName;
PICubeSDK_GetBrokenFrames ICubeSDK_GetBrokenFrames;
PICubeSDK_GetGoodFrames ICubeSDK_GetGoodFrames;
PICubeSDK_GetMode ICubeSDK_GetMode;
PICubeSDK_SetExposure ICubeSDK_SetExposure;
PICubeSDK_GetExposure ICubeSDK_GetExposure;
PICubeSDK_GetExposureRange ICubeSDK_GetExposureRange;
PICubeSDK_SetDisplayMode ICubeSDK_SetDisplayMode;
PICubeSDK_SetResolutionParam ICubeSDK_SetResolutionParam;
PICubeSDK_SetCallbackEx ICubeSDK_SetCallbackEx;
}
HMODULE g_hDll = NULL;
BOOL LoadICubeApi(const char* szDllPathname)
{
g_hDll = LoadLibraryA(szDllPathname);
if(g_hDll == NULL)
return IC_ERROR;
#define ICUBE_INITIALIZE_FUNCTION( A) A = (P##A)GetProcAddress( g_hDll, #A)
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_Init );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetVersion );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetFWVersion );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetSerialNum );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetFPGAVersion );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_Open );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_Close );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_IsOpen );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_IsOpenEx );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetCallback );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_Start );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_IsStarted );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_Stop );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetResolution );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetResolution );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetResolutionRange );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetSize );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetMode );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetMode );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetModeList );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetBinSkip );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetBinSkip );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetBinSkipList );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SaveToFile );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SaveAvi );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetTrigger );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetTrigger );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetCamParameter );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetCamParameter );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetCamParameterRange );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetParamAuto );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetParamAuto );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetParamAutoDef );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetParamOnePush );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_CamParameterSet );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetName );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetBrokenFrames );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetGoodFrames );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetExposure );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetExposure );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_GetExposureRange );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetDisplayMode );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetResolutionParam );
ICUBE_INITIALIZE_FUNCTION( ICubeSDK_SetCallbackEx );
return IC_SUCCESS;
}
VOID UnloadICubeApi()
{
if(g_hDll == NULL) return;
FreeLibrary(g_hDll);
g_hDll = NULL;
}