C++の関数がポインタを使用する場合には、C#のコード内ではそれをアンセーフコードとして扱う必要があります。またポインタはCLSに準拠していないため、CLSCompliant属性でそれを明示する必要があります。
[CLSCompliant( false )] [DllImport( "test.dll", EntryPoint = "MethodName" )] public unsafe static void MethodName( int* p );