GetErrorInfo Method - intrepidcs API¶
C/C++ declare - VB.NET declare - C# declare - Parameters - Return Values - Remarks - C/C++ example - VB.NET example - C# example
This method returns a text description of an intrepidcs API error number.
C/C++ Declare¶
- int _stdcall icsneoGetErrorInfo(int lErrorNumber,
TCHAR *szErrorDescriptionShort, TCHAR *szErrorDescriptionLong, int *lMaxLengthShort, int *lMaxLengthLong, int *lErrorSeverity, int *lRestartNeeded);
Visual Basic .NET Declare¶
- Public Declare Function icsneoGetErrorInfo Lib “icsneo40.dll” _
(ByVal lErrorNumber As Int32, _ ByVal sErrorDescriptionShort As String, _ ByVal sErrorDescriptionLong As String, _ ByRef lMaxLengthShort As Int32, _ ByRef lMaxLengthLong As Int32, _ ByRef lErrorSeverity As Int32, _ ByRef lRestartNeeded As Int32) As Int32
C# Declare¶
[DllImport(“icsneo40.dll”)] public static extern int icsneoGetErrorInfo(int iErrorNumber,
StringBuilder sErrorDescriptionShort, StringBuilder sErrorDescriptionLong, ref int iMaxLengthShort, ref int iMaxLengthLong, ref int lErrorSeverity, ref int lRestartNeeded);
Parameters¶
- lErrorNumber
[in] This is the number of the error message returned from GetErrorMessages. A separate topic describes the possible values for error messages.
- sErrorDescriptionShort
[out] This is short description of the error. This parameter should be sized to include up to 255 characters including the NULL terminator.
- sErrorDescriptionLong
[out] This is longer more detailed description of the error. This parameter should be sized to include up to 255 characters including the NULL terminator.
- lMaxLengthShort
[in] This is the size in characters of the sErrorDescriptionShort array that is being passed in. This value must be 255 or less.
- lMaxLengthLong
[in] This is the size in characters of the sErrorDescriptionLong array that is being passed in. This value must be 255 or less.
- lErrorSeverity
[out] This indicates the error severity. This is estimated severity for the application and doesn’t have significant meaning. See Table 1 below for more information.
- lRestartNeeded
[out] If 1 it is recommend that the application close communications with the DLL and reopen it.
Return Values¶
If the error number was found successfully the return value will be non-zero.
Remarks¶
None.
Table 1 - Descriptions of Error Severity
Error Severity |
Description |
const unsigned long icsspyErrCritical=0x10; |
A critical error which affects operation or accuracy |
const unsigned long icsspyErrExclamation=0x30; |
An important error which may be critical depending on the application. |
const unsigned long icsspyErrInformation=0x40; |
An error which probably does not need attention. |
const unsigned long icsspyErrQuestion=0x20; |
An error which is not understood. |
Examples¶
C/C++ Example¶
// Read the errors from the DLL
lResult = icsneoGetErrorMessages(hObject,iErrors,&lNumberOfErrors);
if (lResult == 0)
MessageBox(hWnd,TEXT("Problem Reading errors"),TEXT("neoVI Example"),0);
// dump the neoVI errors
if (lNumberOfErrors > 0)
{
for (lCount=0;lCount <lNumberOfErrors;lCount++)
{
wsprintf(szOut,TEXT("Error %d - "),iErrors[lCount]);
OutputDebugString(szOut);
icsneoGetErrorInfo(iErrors[lCount],szDescriptionShort,szDescriptionLong,
&lMaxLengthShort,&lMaxLengthLong,&lErrorSeverity,&lRestartNeeded);
OutputDebugString(szDescriptionShort);
OutputDebugString(TEXT("\n"));
}
}
else
OutputDebugString(TEXT("No Errors to report\n"));
Visual Basic .NET Example¶
Public Function icsneoGetDLLErrorInfo(ByVal lErrorNum As Int32, ByRef sErrorShort As String, ByRef sErrorLong As String, ByRef lSeverity As Int32, ByRef bRestart As Int32) As Boolean
Dim lErrorLongLength As Int32
Dim lErrorShortLength As Int32
Dim lRestart As Int32
Dim lResult As Int32
sErrorLong = New String(Chr(0), 255)
sErrorShort = New String(Chr(0), 255)
lErrorLongLength = 255
lErrorShortLength = 255
lResult = icsneoGetErrorInfo(lErrorNum, sErrorShort, sErrorLong, lErrorShortLength, lErrorLongLength, lSeverity, lRestart)
sErrorShort = Left(sErrorShort, lErrorShortLength)
sErrorLong = Left(sErrorLong, lErrorLongLength)
bRestart = CBool(lRestart)
icsneoGetDLLErrorInfo = CBool(lResult)
End Function
**This function reads errors and loads them into a list box**
Private Sub cmdGetErrors_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGetErrors.Click
Dim lResult As Integer '//Storage for result of Function Call
Dim lErrors(600) As Int32 '//Array for Error information
Dim lNumberOfErrors As Integer '//Storage for Number of Errors
Dim lCount As Integer '//Counter
Dim sErrorShort As String '//String Holding Short Error Name
Dim sErrorLong As String '//String Holding Long Error Name
Dim iSeverity As Int32 '//Storage for Level of error
Dim bRestart As Int32 '//flag for if Restart is required
'// Read Out the errors
lResult = icsneoGetErrorMessages(m_hObject, lErrors(0), lNumberOfErrors)
'// Test the returned result
If Not CBool(lResult) Then
MsgBox("Problem Reading Errors")
Else
'//List Error information
lstErrorHolder.Items.Clear()
For lCount = 1 To lNumberOfErrors
Call icsneoGetDLLErrorInfo(lErrors(lCount - 1), sErrorShort, sErrorLong, iSeverity, bRestart)
lstErrorHolder.Items.Add(sErrorShort + " - Description" + _
sErrorLong + " - Errornum: " + Convert.ToString(lErrors(lCount - 1)))
Next lCount
End If
End Sub
C# Example¶
private void cmdGetErrors_Click(object sender, System.EventArgs e)
{
int iResult = 0; //Storage for Result of Call
int[] iErrors = new int[600]; //Array for Error Numbers
int iNumberOfErrors = 0; // Storage for number of errors
int iCount= 0; //Counter
int iSeverity =0; //tells the Severity of Error
int iMaxLengthShort = 0; //Tells Max length of Error String
int iMaxLengthLong = 0; //Tells Max Length of Error String
int lRestart = 0; //tells if a restart is needed
StringBuilder sErrorShort = new StringBuilder(256); //String for Error
StringBuilder sErrorLong = new StringBuilder(256); //String for Error
iMaxLengthShort = 1; //Set initial conditions
iMaxLengthLong = 1; //Set initial conditions
// Read Out the errors
iResult = icsNeoDll.icsneoGetErrorMessages(m_hObject,ref iErrors[0],ref iNumberOfErrors);
// Test the returned result
if(iResult == 0)
{
MessageBox.Show ("Problem Reading Errors");
}
else
{
if(iNumberOfErrors != 0)
{
for(iCount=0;iCount< iNumberOfErrors;iCount++)
{
//Get Text Description of the Error
iResult = icsNeoDll.icsneoGetErrorInfo(iErrors[iCount],
sErrorShort, sErrorLong ,ref iMaxLengthShort , ref iMaxLengthLong, ref iSeverity,ref lRestart);
lstErrorHolder.Items.Add (sErrorShort + " - Description " + sErrorLong + " - Errornum: " + iErrors[iCount]);
}
}
}
}