教えてください。

VC2003 でアンマネージなプロジェクトに一部マネージを混ぜて使ってます。
(ファイルごとのプロパティで /clr をつけてます)

ここで、アンマネージの関数(クラスの静的メソッド)の引数にマネージオブジェクト
(System::Cllectios::ArrayListなど)をつけて普通に呼び出す分には問題なく実行できます。
が、この関数を関数ポインタ経由で呼ぼうとすると例外が発生して不正終了します。
以下のようなコトをしたいのです。
アンマネージの関数ポインタ?がマネージオブジェクトの引数に対応してないのでしょうか。

void func( System::Collections::ArrayList* list )
{}

void hoge()
{
System::Collections::ArrayList* list = __gc new System::Collections::ArrayList();
void(*test)( System::Collections::ArrayList* ) = func;

func( list ); // ok
(*test)( list ); // ng
}