Если TrackBlob возвращает строку, вы должны определить dllimport следующим образом:
[DllImport("Tracking.dll", EntryPoint = "TrackIt")]
public extern static string TrackBlob();
и пропустите попытку упорядочить его.
Возвращая его как IntPtr, вы пытаетесь вставить указатель в память, принадлежащую неуправляемой DLL ... возвращая его в виде строки, вы получите копию строки для работы с ней.
Дайте мне знать, если это работает!
Джеймс
* Редактировать *
Попробуйте один из них:
[DllImport("Tracking.dll", EntryPoint = "TrackIt")]
public extern static [MarshalAs(UnmanagedType.BStr)] string TrackBlob();
или
[DllImport("Tracking.dll", EntryPoint = "TrackIt")]
public extern static [MarshalAs(UnmanagedType.AnsiBStr)] string TrackBlob();
Проверьте эту ссылку MSDN на сортировку строк:
http://msdn.microsoft.com/en-us/library/s9ts558h.aspx