Обновите ваше объявление P / Invoke вашей внешней функции следующим образом:
[DllImport ( "MyDll.dll", CharSet = CharSet.Ansi, EntryPoint = "Func" )]
[return : MarshalAs( UnmanagedType.LPStr )]
string Func ( ... );
Таким образом, вам не придется выполнять дополнительную работу после получения указателя.