.NET 4.x Попытка чтения или записи в защищенную память - C#
Формулировка задачи:
Доброго времени суток!
Возникла такая проблема - при вызове функции из dll(написана на С++) в проекте C# компилятор спотыкается на функции Camac_XQ, выпадая с ошибкой "Попытка чтения или записи в защищенную память..."
Кто-ниюудь может подсказать каким образом ее можно исправить? Или вернее где я косячу, что она вылезает?
Листинг программы
- [DllImport("USB_CAM_DLL.dll")]
- unsafe static extern char* CamInit();
- [DllImport("USB_CAM_DLL.dll")]
- static extern void CamClose();
- [DllImport("USB_CAM_DLL.dll")]
- unsafe static extern int Camac_XQ(Int64 N, int A, int F, int* D, char* XQ);
- [DllImport("USB_CAM_DLL.dll")]
- unsafe static extern int Camac_R(int N, int A, int F, int* D);
- [DllImport("USB_CAM_DLL.dll")]
- static extern int Camac_W(int N, int A, int F, int D);
- [DllImport("USB_CAM_DLL.dll")]
- static extern int Camac_(int N, int A, int F);
- [DllImport("USB_CAM_DLL.dll")]
- static extern void CamZ();
- [DllImport("USB_CAM_DLL.dll")]
- static extern void CamRemI();
- [DllImport("USB_CAM_DLL.dll")]
- static extern void CamC();
- [DllImport("USB_CAM_DLL.dll")]
- static extern void SequStop();
- [DllImport("USB_CAM_DLL.dll")]
- unsafe static extern int SequLoad(char* Buf, int Length);
- [DllImport("USB_CAM_DLL.dll")]
- unsafe static extern int SequWaitAndRead(char* Buf, int Length);
- [DllImport("USB_CAM_DLL.dll")]
- static extern int SetLamTimeOut(int Time);
- [DllImport("USB_CAM_DLL.dll")]
- unsafe static extern int GetLamTimeOut(int* Time);
- //собственные функции для работы с CАMAC
- unsafe public int init_CAMAC(int station)
- {
- char* result;
- char XQ;
- int D;
- string nodev = "No USB Device found";
- result = CamInit();
- if (nodev.CompareTo(Marshal.PtrToStringAnsi((IntPtr)result))!= 0)
- {
- CamZ();
- CamC();
- Camac_XQ(station, 0, 2, &D, &XQ);
- XQ = Convert.ToChar(Convert.ToInt32(XQ) & 3);
- D = 0;
- return XQ;
- }
- else
- {
- MessageBox.Show(Marshal.PtrToStringAnsi((IntPtr)result), "InitCAMAC");
- return -1;
- }
- }
- }
Решение задачи: «.NET 4.x Попытка чтения или записи в защищенную память»
textual
Листинг программы
- [DllImport("USB_CAM_DLL.dll", CallingConvention=CallingConvention.Cdecl)]
- unsafe static extern int Camac_XQ(int N, int A, int F, int* D, byte* XQ);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д