Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.32 KB | None | 0 0
  1. System.AccessViolationException: "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
  2.  
  3. //---------------------------------------
  4. // Initialize
  5. NET_DVR_Init();
  6. //set connected time and reconnected time
  7. NET_DVR_SetConnectTime(2000, 1);
  8. NET_DVR_SetReconnect(10000, true);
  9.  
  10. //---------------------------------------
  11. // Register device
  12. LONG lUserID;
  13.  
  14. //Login parameters, including IP address, user name, password and so on.
  15. NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
  16. struLoginInfo.bUseAsynLogin = 0; //Synchronous login mode
  17. strcpy(struLoginInfo.sDeviceAddress, "192.0.0.64"); //IP address
  18. struLoginInfo.wPort = 8000; //Service port
  19. strcpy(struLoginInfo.sUserName, "admin"); //User name
  20. strcpy(struLoginInfo.sPassword, "abcd1234"); //Password
  21.  
  22. //Device information, output parameter
  23. NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {0};
  24.  
  25. lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40);
  26. if (lUserID < 0)
  27. {
  28. printf("Login failed, error code: %dn", NET_DVR_GetLastError());
  29. NET_DVR_Cleanup();
  30. return;
  31. }
  32.  
  33. public class HCNetSDK
  34. {
  35. private const string origDllName = @"C:docsHCNetSDK.dll";
  36.  
  37. #region structs
  38. [StructLayout(LayoutKind.Sequential)]
  39. public struct NET_DVR_DEVICEINFO_V30
  40. {
  41. public Byte[] sSerialNumber;//[48];
  42. public Byte byAlarmInPortNum;
  43. public Byte byAlarmOutPortNum;
  44. public Byte byDiskNum;
  45. public Byte byDVRType;
  46. public Byte byChanNum;
  47. public Byte byStartChan;
  48. public Byte byAudioChanNum;
  49. public Byte byIPChanNum;
  50. public Byte byZeroChanNum;
  51. public Byte byMainProto;
  52. public Byte bySubProto;
  53. public Byte bySupport;
  54. public Byte bySupport1;
  55. public Byte bySupport2;
  56. public UInt16 wDevType;
  57. public Byte bySupport3;
  58. public Byte byMultiStreamProto;
  59. public Byte byStartDChan;
  60. public Byte byStartDTalkChan;
  61. public Byte byHighDChanNum;
  62. public Byte bySupport4;
  63. public Byte byVoiceInChanNum;
  64. public Byte byStartVoiceInChanNo;
  65. public Byte bySupport5;
  66. public Byte bySupport6;
  67. public Byte byMirrorChanNum;
  68. public UInt16 wStartMirrorChanNo;
  69. public Byte bySupport7;
  70. public Byte byRes2;
  71. }
  72. #endregion
  73.  
  74.  
  75.  
  76. [DllImport(origDllName)]
  77. public static extern Boolean NET_DVR_Init();
  78.  
  79. [DllImport(origDllName)]
  80. public static extern Boolean NET_DVR_SetConnectTime(UInt32 dwWaitTime, UInt32 dwTryTimes);
  81.  
  82. [DllImport(origDllName)]
  83. public static extern Boolean NET_DVR_SetReconnect(UInt32 dwInterval, Boolean bEnableRecon);
  84.  
  85. [DllImport(origDllName)]
  86. public static extern Int32 NET_DVR_Login_V30(string sDVRIP, UInt16 wDVRPort, string sUserName, string sPassword, ref NET_DVR_DEVICEINFO_V30 DeviceInfo);
  87.  
  88. [DllImport(origDllName)]
  89. public static extern UInt32 NET_DVR_GetLastError();
  90.  
  91. [DllImport(origDllName)]
  92. public static extern Boolean NET_DVR_Cleanup();
  93. }
  94.  
  95. static void Main(string[] args)
  96. {
  97. Camera.HCNetSDK.NET_DVR_Init();
  98. Camera.HCNetSDK.NET_DVR_SetConnectTime(2000, 1);
  99. Camera.HCNetSDK.NET_DVR_SetReconnect(10000, true);
  100.  
  101. Int32 lUserID;
  102.  
  103. Camera.HCNetSDK.NET_DVR_DEVICEINFO_V30 struDeviceInfoV30 = new Camera.HCNetSDK.NET_DVR_DEVICEINFO_V30();
  104.  
  105. lUserID = Camera.HCNetSDK.NET_DVR_Login_V30("ip", 8000, "login", "pass", ref struDeviceInfoV30);
  106.  
  107. if (lUserID < 0)
  108. {
  109. Console.WriteLine("Login failed, error code: {0}n", Camera.HCNetSDK.NET_DVR_GetLastError());
  110. Camera.HCNetSDK.NET_DVR_Cleanup();
  111. Console.ReadKey();
  112. return;
  113. }
  114.  
  115. Console.WriteLine("The max number of analog channels: {0}n", struDeviceInfoV30.byChanNum);
  116. Console.WriteLine("The max number of IP channels: {0}n", struDeviceInfoV30.byIPChanNum + struDeviceInfoV30.byHighDChanNum * 256);
  117.  
  118. Console.WriteLine("Done!");
  119. Console.ReadKey();
  120. }
  121.  
  122. LONG NET_DVR_Login_V30(
  123. char *sDVRIP,
  124. WORD wDVRPort,
  125. char *sUserName,
  126. char *sPassword,
  127. LPNET_DVR_DEVICEINFO_V30 lpDeviceInfo);
  128.  
  129. struct{
  130. BYTE sSerialNumber[SERIALNO_LEN]; BYTE byAlarmInPortNum;
  131. BYTE byAlarmOutPortNum; BYTE byDiskNum;
  132. BYTE byDVRType; BYTE byChanNum;
  133. BYTE byStartChan; BYTE byAudioChanNum;
  134. BYTE byIPChanNum; BYTE byZeroChanNum;
  135. BYTE byMainProto; BYTE bySubProto;
  136. BYTE bySupport; BYTE bySupport1;
  137. BYTE bySupport2; WORD wDevType;
  138. BYTE bySupport3; BYTE byMultiStreamProto;
  139. BYTE byStartDChan; BYTE byStartDTalkChan;
  140. BYTE byHighDChanNum; BYTE bySupport4;
  141. BYTE byVoiceInChanNum; BYTE byStartVoiceInChanNo;
  142. BYTE bySupport5; BYTE bySupport6;
  143. BYTE byMirrorChanNum; WORD wStartMirrorChanNo;
  144. BYTE bySupport7; BYTE byRes2;
  145. }NET_DVR_DEVICEINFO_V30,*LPNET_DVR_DEVICEINFO_V30;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement