drivers/win32/win32.c
changeset 774 91d708a2cb4e
parent 773 c10def4bfbde
child 777 bbbfd27c1bd1
equal deleted inserted replaced
773:c10def4bfbde 774:91d708a2cb4e
    97  * @param driver_name String containing driver's dynamic library name
    97  * @param driver_name String containing driver's dynamic library name
    98  * @return Library handle
    98  * @return Library handle
    99  */
    99  */
   100 LIB_HANDLE LoadCanDriver(LPCSTR driver_name)
   100 LIB_HANDLE LoadCanDriver(LPCSTR driver_name)
   101 {
   101 {
   102 	// driver module handle
   102     // driver module handle
   103 	LIB_HANDLE handle = NULL;
   103     LIB_HANDLE handle = NULL;
   104 
   104 
   105 #ifndef NOT_USE_DYNAMIC_LOADING
   105 #ifndef NOT_USE_DYNAMIC_LOADING
   106 	if(handle == NULL)
   106     handle = LoadLibrary(driver_name);
   107 	{
   107 
   108 		handle = LoadLibrary(driver_name);
   108     if (!handle)
   109 	}
   109     {
   110 
   110         fprintf (stderr, "LoadLibrary error : %d\n", GetLastError());
   111 	if (!handle)
   111         return NULL;
   112 	{
   112     }
   113 		fprintf (stderr, "%d\n", GetLastError());
   113 
   114     	return NULL;
   114     m_canReceive = (CANRECEIVE_DRIVER_PROC)GetProcAddress(handle, myTEXT("canReceive_driver"));
   115 	}
   115     m_canSend = (CANSEND_DRIVER_PROC)GetProcAddress(handle, myTEXT("canSend_driver"));
   116 
   116     m_canOpen = (CANOPEN_DRIVER_PROC)GetProcAddress(handle, myTEXT("canOpen_driver"));
   117 	m_canReceive = (CANRECEIVE_DRIVER_PROC)GetProcAddress(handle, myTEXT("canReceive_driver"));
   117     m_canClose = (CANCLOSE_DRIVER_PROC)GetProcAddress(handle, myTEXT("canClose_driver"));
   118 	m_canSend = (CANSEND_DRIVER_PROC)GetProcAddress(handle, myTEXT("canSend_driver"));
   118     m_canChangeBaudRate = (CANCHANGEBAUDRATE_DRIVER_PROC)GetProcAddress(handle, myTEXT("canChangeBaudRate_driver"));
   119 	m_canOpen = (CANOPEN_DRIVER_PROC)GetProcAddress(handle, myTEXT("canOpen_driver"));
   119 
   120 	m_canClose = (CANCLOSE_DRIVER_PROC)GetProcAddress(handle, myTEXT("canClose_driver"));
   120     if(m_canReceive==NULL || m_canSend==NULL || m_canOpen==NULL || m_canClose==NULL || m_canChangeBaudRate==NULL)
   121 	m_canChangeBaudRate = (CANCHANGEBAUDRATE_DRIVER_PROC)GetProcAddress(handle, myTEXT("canChangeBaudRate_driver"));
   121     {
   122 
   122         m_canReceive = NULL;
   123 	if(m_canReceive==NULL || m_canSend==NULL || m_canOpen==NULL || m_canClose==NULL || m_canChangeBaudRate==NULL)
   123         m_canSend = NULL;
   124 	{
   124         m_canOpen = NULL;
   125 	  m_canReceive = NULL;
   125         m_canClose = NULL;
   126 	  m_canSend = NULL;
   126         m_canChangeBaudRate = NULL;
   127 	  m_canOpen = NULL;
   127         FreeLibrary(handle);
   128 	  m_canClose = NULL;
   128         fprintf (stderr, "GetProc error : %d\n", GetLastError());
   129 	  m_canChangeBaudRate = NULL;
   129         return NULL;
   130 	  FreeLibrary(handle);
   130     }
   131 	  handle = NULL;
       
   132 	}
       
   133 #else
   131 #else
   134   //compiled in...
   132     //compiled in...
   135   handle = 1; //TODO: remove this hack
   133     handle = 1; //TODO: remove this hack
   136 
   134 
   137   m_canReceive = canReceive_driver;
   135     m_canReceive = canReceive_driver;
   138 	m_canSend = canSend_driver;
   136     m_canSend = canSend_driver;
   139 	m_canOpen = canOpen_driver;
   137     m_canOpen = canOpen_driver;
   140 	m_canClose = canClose_driver;
   138     m_canClose = canClose_driver;
   141 	m_canChangeBaudRate = canChangeBaudRate_driver;
   139     m_canChangeBaudRate = canChangeBaudRate_driver;
   142 #endif
   140 #endif
   143 
   141 
   144 
   142 
   145 	return handle;
   143     return handle;
   146 }
   144 }
   147 
   145 
   148 /***************************************************************************/
   146 /***************************************************************************/
   149 UNS8 canSend(CAN_PORT port, Message *m)
   147 UNS8 canSend(CAN_PORT port, Message *m)
   150 {
   148 {