У меня есть приложение WPF, которое было перенесено из .net3.5 в .net4.0.Это приложение использует старую библиотеку C ++ (насколько я понимаю, это библиотека смешанного режима, что означает управляемый-неуправляемый).Библиотека переместилась в среду .net4 с некоторой странной ошибкой, возникающей при обратном вызове:
if (m_pCANCallback)
m_pCANCallback(m_pCANCallbackPtr, &rxData);
Она правильно передает rxData, если подключен отладчик VS, и NULL, если я запускаю приложение без отладчика.* Вот определение функции обратного вызова:
void USBCANAdapter::CANDataCallback( void *pThis, RxData *pRxData )
Итак, в теле этой функции pRxData равно NULL, но это происходит только без отладчика и только в среде .net4.
Просто вслучай, инициализация обратного вызова:
m_pUsbCan->DefineCANMsgCallback( (TUsbCallback)USBCANAdapter::CANDataCallback );
void CUsbFt::DefineCANMsgCallback(TUsbCallback pCallback, void *pCallbackPtr)
{
m_pCANCallback = pCallback;
m_pCANCallbackPtr = pCallbackPtr;
}
Большое спасибо за любые советы!