0
静的ライブラリからいくつかの関数を呼び出す際に苦労しています。 このtoms wrapperの後にスタティックライブラリのビジュアルスタジオでラッパーを書いて、C#側の関数にアクセスできるようになりましたが、扱う際にエラーが発生します。だからここ静的CライブラリのポインタにC#配列をマーシャリングする
機能は、オリジナルに見えるものです:
のでpublic int compressZIP(byte* dest, uint destLen, byte* source, uint sourceLen,
uint* _crc32);
にC#の側になった
ZEXTERN Int32 ZEXPORT compressZIP OF((unsigned char *dest, Uint32 destLen,
unsigned char *source, Uint32 sourceLen,
Uint32 *_crc32));
が、今私は、ポインタの問題に引っかかっています、私のようなものを試してみました
byte[] data = new byte[size]
(fixed ptr = data)
そして関数にptrsを渡します。しかし、私はいつもいくつかのメモリ違反や他のメモリ例外で終わる。
私はuncompressZIPを同じように見えると言いますが、2文字は圧縮されていませんが、その後はフェンスのものだけが得られます。
関数に正しい引数を入力するのに役立つ人はいますか?
can't it'sは、C/CLIおよび無DLLIMPORTを管理しているため。 – Gobliins
しかし、とにかく問題はc側にあるようです – Gobliins