:そして、私はこのようなC#のからそれをこのC++関数を呼び出す方法は?
bool __declspec(dllexport) COMS_HL7QueryAnswer(char *szZone,char* szMessage, char** o_szAnswer)
をPInvokingよ:
public static extern bool COMS_HL7QueryAnswer(string szZone,string szMessage, out StringBuilder szAnswer);
これは、Windows 2003で働いていますが、私はW2008とルックスでアクセス違反の例外を取得しています
彼らはPInvokeの境界で起こるように。どんな助けも素晴らしいでしょう。
ありがとうございました。
編集:私はC#の機能以外のコールスタックを持っていない
- :ので、AccessViolationExceptionがPInvokeの境界で起こるようが見えます。
- デバッガを使用すると、最後のC++関数までF10できます。終了すると、C#例外ハンドラに移動します。
境界**で発生しているように見えます。追加情報が正確にどのように失敗したかは参考になります。 –
@Ramhound:私の編集をご覧ください。ありがとう。 –
あなたの署名が有効でないことを除いて、あなたの呼び出し規約も一致しません。解決したいかもしれません。 –