ファイル名へのパスを渡そうとすると、この例外をスローするアンマネージ関数呼び出しがあります。
これはDLL自体が原因である可能性が高いと読みましたが、DLLが別のアプリケーションで使用されているため、そうではないと思います。そのため、関数を呼び出すメソッドに問題がある可能性があります。
仕様:
libvlc_media_new_path (libvlc_instance_t *p_instance, const char *path)
説明:
p_instance the instance
path local filesystem path
そして私の方法:
[DllImport("libvlc", EntryPoint = "libvlc_media_new_path")]
public static extern IntPtr NewMedia(IntPtr instance,
[MarshalAs(UnmanagedType.LPStr)] string path);
私はコンベンションコールを見逃していると思いますが、それは何でしょうか? それとも、この例外を引き起こしている何か他のものでしょうか?
編集:いくつかのコメントに基づいて、私はいくつかのことを調べて見つけました...まあ、何もありません。インスタンスの構造体は不透明です。つまり、素人の言葉ではわかりません。私の推測では、それを使用しているアプリケーションでそれを再構築する必要がないということですか?
thisに基づく盲目的な推測では、使用していた戻り値を、*p_instance 値をlong
an ではなくa に設定する関数に置き換えました。価値。繰り返しますが、私は本当に知りません。インスタンス変数に 0 以外の値が表示されたのは非常に嬉しかったのですが、それを過ぎて実行すると、再びエラーが発生しました。IntPtr
IntPtr
IntPtr
編集:質問をここに拡張しました。