これは、最後のエラーをバッファに取得するために取得したコードですが、IntPtrを読み取り可能なものに変換する方法がわかりません...長い数値を取得するだけです。
/// Return Type: void
///pErrorCode: ABS_DWORD*
///ppErrorMessage: ABS_CHAR**
[System.Runtime.InteropServices.DllImportAttribute("bsapi.dll", EntryPoint = "ABSGetLastErrorInfo", CallingConvention = System.Runtime.InteropServices.CallingConvention.StdCall)]
public static extern void ABSGetLastErrorInfo(ref uint pErrorCode, ref System.IntPtr ppErrorMessage);
これはマニュアルからです:
void ABSGetLastErrorInfo(
OUT ABS_DWORD *pErrorCode
OUT const ABS_CHAR **ppErrorMessage
)
説明現在のスレッドで発生した最後のBSAPIエラーに関する追加情報を取得します。
ppErrorMessage出力時に、これはテキストメッセージを含むゼロで終了する文字列を含むバッファを指すように設定されます。
メッセージが提供されない場合、メッセージは空の文字列を指しているため、呼び出し元はNULLをチェックする必要はありません。
バッファはBSAPIによって管理されます。ABSFreeを使用して解放しないでください。バッファは、他のBSAPI呼び出しが同じスレッドで実行されるまでのみ有効であることに注意してください。次の呼び出しの後、バッファはBSAPIによって解放または再利用される場合があります。メッセージを覚えておく必要がある場合は、それを自分のバッファにコピーする必要があります。