C#调用纯C的DLL时,结构体指针、数组、二维数组 怎么转换?

用纯C写的 迪杰斯特拉算法,封装成DLL后,用C#调用。C的结构体:

typedef struct _graph {
    int Vertex[VEXNUM];             //顶点信息
    int AdjMatrix[VEXNUM][VEXNUM];  //邻接矩阵
    int vexnum;                     //顶点数
    int arcnum;                     //弧数
}*MyGraph;
void  CreatGraph(MyGraph  g){}

那么在C#中怎么调用呢? (数组、二维数组、结构体指针)

[MarshalAs(UnmanagedType.ByValArray, SizeConst = VEXNUM *4)] 
public int[] Vertex;