Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- System.AccessViolationException: "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
- //---------------------------------------
- // Initialize
- NET_DVR_Init();
- //set connected time and reconnected time
- NET_DVR_SetConnectTime(2000, 1);
- NET_DVR_SetReconnect(10000, true);
- //---------------------------------------
- // Register device
- LONG lUserID;
- //Login parameters, including IP address, user name, password and so on.
- NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
- struLoginInfo.bUseAsynLogin = 0; //Synchronous login mode
- strcpy(struLoginInfo.sDeviceAddress, "192.0.0.64"); //IP address
- struLoginInfo.wPort = 8000; //Service port
- strcpy(struLoginInfo.sUserName, "admin"); //User name
- strcpy(struLoginInfo.sPassword, "abcd1234"); //Password
- //Device information, output parameter
- NET_DVR_DEVICEINFO_V40 struDeviceInfoV40 = {0};
- lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfoV40);
- if (lUserID < 0)
- {
- printf("Login failed, error code: %dn", NET_DVR_GetLastError());
- NET_DVR_Cleanup();
- return;
- }
- public class HCNetSDK
- {
- private const string origDllName = @"C:docsHCNetSDK.dll";
- #region structs
- [StructLayout(LayoutKind.Sequential)]
- public struct NET_DVR_DEVICEINFO_V30
- {
- public Byte[] sSerialNumber;//[48];
- public Byte byAlarmInPortNum;
- public Byte byAlarmOutPortNum;
- public Byte byDiskNum;
- public Byte byDVRType;
- public Byte byChanNum;
- public Byte byStartChan;
- public Byte byAudioChanNum;
- public Byte byIPChanNum;
- public Byte byZeroChanNum;
- public Byte byMainProto;
- public Byte bySubProto;
- public Byte bySupport;
- public Byte bySupport1;
- public Byte bySupport2;
- public UInt16 wDevType;
- public Byte bySupport3;
- public Byte byMultiStreamProto;
- public Byte byStartDChan;
- public Byte byStartDTalkChan;
- public Byte byHighDChanNum;
- public Byte bySupport4;
- public Byte byVoiceInChanNum;
- public Byte byStartVoiceInChanNo;
- public Byte bySupport5;
- public Byte bySupport6;
- public Byte byMirrorChanNum;
- public UInt16 wStartMirrorChanNo;
- public Byte bySupport7;
- public Byte byRes2;
- }
- #endregion
- [DllImport(origDllName)]
- public static extern Boolean NET_DVR_Init();
- [DllImport(origDllName)]
- public static extern Boolean NET_DVR_SetConnectTime(UInt32 dwWaitTime, UInt32 dwTryTimes);
- [DllImport(origDllName)]
- public static extern Boolean NET_DVR_SetReconnect(UInt32 dwInterval, Boolean bEnableRecon);
- [DllImport(origDllName)]
- public static extern Int32 NET_DVR_Login_V30(string sDVRIP, UInt16 wDVRPort, string sUserName, string sPassword, ref NET_DVR_DEVICEINFO_V30 DeviceInfo);
- [DllImport(origDllName)]
- public static extern UInt32 NET_DVR_GetLastError();
- [DllImport(origDllName)]
- public static extern Boolean NET_DVR_Cleanup();
- }
- static void Main(string[] args)
- {
- Camera.HCNetSDK.NET_DVR_Init();
- Camera.HCNetSDK.NET_DVR_SetConnectTime(2000, 1);
- Camera.HCNetSDK.NET_DVR_SetReconnect(10000, true);
- Int32 lUserID;
- Camera.HCNetSDK.NET_DVR_DEVICEINFO_V30 struDeviceInfoV30 = new Camera.HCNetSDK.NET_DVR_DEVICEINFO_V30();
- lUserID = Camera.HCNetSDK.NET_DVR_Login_V30("ip", 8000, "login", "pass", ref struDeviceInfoV30);
- if (lUserID < 0)
- {
- Console.WriteLine("Login failed, error code: {0}n", Camera.HCNetSDK.NET_DVR_GetLastError());
- Camera.HCNetSDK.NET_DVR_Cleanup();
- Console.ReadKey();
- return;
- }
- Console.WriteLine("The max number of analog channels: {0}n", struDeviceInfoV30.byChanNum);
- Console.WriteLine("The max number of IP channels: {0}n", struDeviceInfoV30.byIPChanNum + struDeviceInfoV30.byHighDChanNum * 256);
- Console.WriteLine("Done!");
- Console.ReadKey();
- }
- LONG NET_DVR_Login_V30(
- char *sDVRIP,
- WORD wDVRPort,
- char *sUserName,
- char *sPassword,
- LPNET_DVR_DEVICEINFO_V30 lpDeviceInfo);
- struct{
- BYTE sSerialNumber[SERIALNO_LEN]; BYTE byAlarmInPortNum;
- BYTE byAlarmOutPortNum; BYTE byDiskNum;
- BYTE byDVRType; BYTE byChanNum;
- BYTE byStartChan; BYTE byAudioChanNum;
- BYTE byIPChanNum; BYTE byZeroChanNum;
- BYTE byMainProto; BYTE bySubProto;
- BYTE bySupport; BYTE bySupport1;
- BYTE bySupport2; WORD wDevType;
- BYTE bySupport3; BYTE byMultiStreamProto;
- BYTE byStartDChan; BYTE byStartDTalkChan;
- BYTE byHighDChanNum; BYTE bySupport4;
- BYTE byVoiceInChanNum; BYTE byStartVoiceInChanNo;
- BYTE bySupport5; BYTE bySupport6;
- BYTE byMirrorChanNum; WORD wStartMirrorChanNo;
- BYTE bySupport7; BYTE byRes2;
- }NET_DVR_DEVICEINFO_V30,*LPNET_DVR_DEVICEINFO_V30;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement