Ejemplo n.º 1
0
        private string GetErrorMsgAsString()
        {
            IntPtr errorMessageIntPtr = Marshal.AllocHGlobal(ERROR_MESSAGE_LEN);
            IntPtr errorMsgLenIntPtr  = Marshal.AllocHGlobal(INT_SIZE);

            SigmaWrapper.GetErrorMessage(errorMessageIntPtr, errorMsgLenIntPtr);

            byte[] messageLength = new byte[INT_SIZE];
            Marshal.Copy(errorMsgLenIntPtr, messageLength, 0, messageLength.Length);
            byte[] message = new byte[BitConverter.ToInt32(messageLength, 0)];
            Marshal.Copy(errorMessageIntPtr, message, 0, message.Length);

            Marshal.FreeHGlobal(errorMessageIntPtr);
            Marshal.FreeHGlobal(errorMsgLenIntPtr);

            return(System.Text.Encoding.ASCII.GetString(message));
        }