[DllImport("some.dll")]
static extern void SomeCPlusPlusFunction(IntPtr arg);
IntPtr - это тип, который приблизительно эквивалентен void *.
Из вашего комментария лучше всего сделать что-то подобное (C #):
int size = 3;
fixed (int *p = &size) {
IntPtr data = Marshal.AllocHGlobal(new IntPtr(p));
// do some work with data
Marshal.FreeHGlobal(data); // have to free it
}
но поскольку AllocHGlobal может принимать int, я не знаю, почему вы не сделали бы это:
IntPtr data = Marshal.AllocHGlobal(size);