このClarionプロシージャ宣言をC#に変換するにはどうすればよいですか?これは、Cで記述されたサードパーティのDLLの一部であり、ドキュメントはあまりありません。正しく機能しているClarionのメソッドのプロトタイプをリストしました。C#では、置換に使用するタイプがわかりません*CString
。@DanielCが提案したように試しchar[]
ましたが、うまくいきませんでした。また、Clarionlong
が32ビットであることがわかりました(@ shf301に感謝)。
クラリオン:
SendRequest Procedure(*CString xData,Long DataLen,Long xTimeout),Byte,Virtual
C#(私が試したものですが、機能しません):
[DllImport("3RD_PARTY_API.dll")]
private static extern long SendRequest(ref string xData, int DataLen, int xTimeout);
SendRequest
C#でメソッドを呼び出すと、 VS2010から標準のPInvokeStackImbalanceが検出されたというエラーが発生します。これはパラメータタイプの問題であり、DllImport宣言CharSet
のようなものではないと思います。私は本当に有効なC#タイプに変換する方法に固執しています。EntryPoint
*CString