私は管理対象/非管理対象の相互運用をしようとしていました。この定義作品はC#P/Invoke:Varargsデリゲートコールバック
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public unsafe delegate void LogCallback(void* arg1,int level,byte* fmt);
、しかし、私は、「サイズ=%dとスコアは=%dの形式%sの探査」のような文字列を取得します:拡張エラー情報を取得するには、私は、DLLによって提供されるログのコールバックを登録することを決めました。 __arglistキーワードを追加しようとしましたが、代理人には許可されていません。
まあ、それほど劇的ではありませんが、私はC#でvarargsパラメータを得ることができたのは不思議です。 私はinteropにC++を使用できることを知っています。 So:これを純粋にC#で、合理的なeffordで行う方法はありますか?
EDIT:私はが可変引数機能をインポートするが、その後、私のネイティブコードと呼ばれるコールバック、としてそれを輸出しておりません。まだそれを取得していない人のために。一度に1つしか指定できません - > 1つのオーバーロードしかできず、__arglistは機能しません。
[This(http://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/wow-memory-editing/301588-how-hooking-functions-wow- variable-arguments-c.html)が役に立つかもしれません。 – IllidanS4