Devi utilizzare l'attributo DllImport applicato ad una funzione vuota per richiamare il codice unmanaged; al posto dei char * puoi usare o delle semplici stringhe, oppure, se la funzione unmanaged in questione deve modificare le stringhe passate, un oggetto System.Text.StringBuilder dimensionato correttamente, poiché le stringhe .NET sono immutabili.
codice:
using System.Runtime.InteropServices;
//...
[DllImport("nomedll.dll", CharSet=CharSet.Ansi, ExactSpelling=true)]
public static extern int icGiveMeCert(String a, String b, int d);