主要就是LoadLibrary和GetProcAddress以及FreeLibrary三个函数的配合使用,来实现动态加载相关接口。不想多说,直接附上源码。
void TestI2C_DLL()
{
//dll 接口声明
typedef void (*Init_libMPSSE_I2C)(void);
typedef void (*Cleanup_libMPSSE_I2C)(void);
typedef FT_STATUS (*I2C_GetNumChannels_I2C)(uint32 *numChannels);
typedef FT_STATUS (*I2C_GetChannelInfo_I2C)(uint32 index, FT_DEVICE_LIST_INFO_NODE *chanInfo);
typedef FT_STATUS (*I2C_OpenChannel_I2C)(uint32 index, FT_HANDLE *handle);
typedef FT_STATUS (*I2C_InitChannel_I2C)(FT_HANDLE handle, ChannelConfig *config);
typedef FT_STATUS (*I2C_CloseChannel_I2C)(FT_HANDLE handle);
typedef FT_STATUS (*I2C_DeviceWrite_I2C)(FT_HANDLE handle, uint32 deviceAddress, uint32 sizeToTransfer, uint8 *buffer, uint32 *sizeTransfered, uint32 options);
Init_libMPSSE_I2C I2C_Init_libMPSSE;
Cleanup_libMPSSE_I2C I2C_Cleanup_libMPSSE;
I2C_GetNumChannels_I2C I2C_GetNumChannels;
I2C_GetChannelInfo_I2C I2C_Ge