.NET 4.x Попытка чтения или записи в защищенную память - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Возникла такая проблема - при вызове функции из dll(написана на С++) в проекте C# компилятор спотыкается на функции Camac_XQ, выпадая с ошибкой "Попытка чтения или записи в защищенную память..." Кто-ниюудь может подсказать каким образом ее можно исправить? Или вернее где я косячу, что она вылезает?
Листинг программы
  1. [DllImport("USB_CAM_DLL.dll")]
  2. unsafe static extern char* CamInit();
  3. [DllImport("USB_CAM_DLL.dll")]
  4. static extern void CamClose();
  5. [DllImport("USB_CAM_DLL.dll")]
  6. unsafe static extern int Camac_XQ(Int64 N, int A, int F, int* D, char* XQ);
  7. [DllImport("USB_CAM_DLL.dll")]
  8. unsafe static extern int Camac_R(int N, int A, int F, int* D);
  9. [DllImport("USB_CAM_DLL.dll")]
  10. static extern int Camac_W(int N, int A, int F, int D);
  11. [DllImport("USB_CAM_DLL.dll")]
  12. static extern int Camac_(int N, int A, int F);
  13. [DllImport("USB_CAM_DLL.dll")]
  14. static extern void CamZ();
  15. [DllImport("USB_CAM_DLL.dll")]
  16. static extern void CamRemI();
  17. [DllImport("USB_CAM_DLL.dll")]
  18. static extern void CamC();
  19. [DllImport("USB_CAM_DLL.dll")]
  20. static extern void SequStop();
  21. [DllImport("USB_CAM_DLL.dll")]
  22. unsafe static extern int SequLoad(char* Buf, int Length);
  23. [DllImport("USB_CAM_DLL.dll")]
  24. unsafe static extern int SequWaitAndRead(char* Buf, int Length);
  25. [DllImport("USB_CAM_DLL.dll")]
  26. static extern int SetLamTimeOut(int Time);
  27. [DllImport("USB_CAM_DLL.dll")]
  28. unsafe static extern int GetLamTimeOut(int* Time);
  29. //собственные функции для работы с CАMAC
  30. unsafe public int init_CAMAC(int station)
  31. {
  32. char* result;
  33. char XQ;
  34. int D;
  35. string nodev = "No USB Device found";
  36. result = CamInit();
  37. if (nodev.CompareTo(Marshal.PtrToStringAnsi((IntPtr)result))!= 0)
  38. {
  39. CamZ();
  40. CamC();
  41. Camac_XQ(station, 0, 2, &D, &XQ);
  42. XQ = Convert.ToChar(Convert.ToInt32(XQ) & 3);
  43. D = 0;
  44.  
  45. return XQ;
  46. }
  47. else
  48. {
  49. MessageBox.Show(Marshal.PtrToStringAnsi((IntPtr)result), "InitCAMAC");
  50. return -1;
  51. }
  52. }
  53. }

Решение задачи: «.NET 4.x Попытка чтения или записи в защищенную память»

textual
Листинг программы
  1. [DllImport("USB_CAM_DLL.dll", CallingConvention=CallingConvention.Cdecl)]
  2. unsafe static extern int Camac_XQ(int N, int A, int F, int* D, byte* XQ);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы