예제 #1
0
        public static ErrorDetails GetLastError()
        {
            int errorCode = GetErrorCode();

            if (KnownErrors.ContainsKey(errorCode))
            {
                return(KnownErrors[errorCode]);
            }

            string message = Marshal.PtrToStringAnsi(LibZmq.zmq_strerror(errorCode));

            var errorDetails = new ErrorDetails(errorCode, message);

            KnownErrors[errorCode] = errorDetails;

            return(errorDetails);
        }
예제 #2
0
        public static ErrorDetails GetLastError()
        {
            int errorCode = GetErrorCode();

            if (KnownErrors.ContainsKey(errorCode))
            {
                return(KnownErrors[errorCode]);
            }

            string message = Marshal.PtrToStringUni(LibZmq.zmq_strerror(errorCode));

            byte[] temp = Encoding.Unicode.GetBytes(message);

            message = Encoding.ASCII.GetString(temp, 0, temp.Length).Replace('\0', ' ').Trim();;
            var errorDetails = new ErrorDetails(errorCode, message);

            KnownErrors[errorCode] = errorDetails;

            return(errorDetails);
        }