class driver_procs
{
public:
driver_procs();
~driver_procs();
HMODULE load_canfestival_driver(LPCTSTR driver_name);
bool can_driver_valid() const;
public:
// can driver
CANRECEIVE_DRIVER_PROC m_canReceive;
CANSEND_DRIVER_PROC m_canSend;
CANOPEN_DRIVER_PROC m_canOpen;
CANCLOSE_DRIVER_PROC m_canClose;
// driver module habndle
HMODULE m_driver_handle;
};
driver_procs::driver_procs() : m_canReceive(0),
m_canSend(0),
m_canOpen(0),
m_canClose(0),
m_driver_handle(0)
{}
driver_procs::~driver_procs()
{
if (m_driver_handle)
::FreeLibrary(m_driver_handle);
CANRECEIVE_DRIVER_PROC m_canReceive;
CANSEND_DRIVER_PROC m_canSend;
CANOPEN_DRIVER_PROC m_canOpen;
CANCLOSE_DRIVER_PROC m_canClose
定义为
typedef UNS8 (*CANRECEIVE_DRIVER_PROC)(void* inst, Message *m);
typedef UNS8 (*CANSEND_DRIVER_PROC)(void* inst, const Message *m);
typedef void* (*CANOPEN_DRIVER_PROC)(s_BOARD *board);
typedef int (*CANCLOSE_DRIVER_PROC)(void* inst);
经过这样以后
driver_procs::driver_procs() : m_canReceive(0),
m_canSend(0),
m_canOpen(0),
m_canClose(0),
m_driver_handle(0)
{}
下面这些量的值是什么,CANRECEIVE_DRIVER_PROC m_canReceive;
CANSEND_DRIVER_PROC m_canSend;
CANOPEN_DRIVER_PROC m_canOpen;
CANCLOSE_DRIVER_PROC m_canClose
被初始化为0的一个指针吗?
------解决方案--------------------------------------------------------
函数指针指向NULL
变量值初始化为NULL