[StructLayout(LayoutKind.Auto)]
public class UserInfo
{
[MarshalAs(UnmanagedType.BStr)]
public string _domainName;
[MarshalAs(UnmanagedType.BStr)]
public string _firstName;
[MarshalAs(UnmanagedType.BStr)]
public string _middleName;
[MarshalAs(UnmanagedType.BStr)]
public string _lastName;
Внутри сишного кода, идет нормальное заполнение этой структуры ...
Она заполняется, все нормально, а когда мы покидаем сишный код, то получаем сл. вылетает ексепшн в, котором написано мол Object reference not set to an instance of an object.
Кто знает в чем дело ? помогите плиз ...
Если есть более елегантное решение это даже лучше ... =)
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, asemchuk, Вы писали:
A>>[DllImport("CASAgentA.dll", CharSet=CharSet.Ansi, SetLastError=true, EntryPoint "CASGetUsersByApp")] A>>private extern static int CASGetUsersByAppA( string strBSCode, string strBusinessSystemCode, ref UserInfo[] parrUsers , ref int Size );
A>Как минимум надо ref на out заменить. К тому же у вас CASGetUsersByAppA а передаются string (а они unicode'ные). Может ещё что-то есть...
С out я пробовал, та же ошибка + еще одна из серии Unhandled вылетает ...
С передачей параметров все норм, я их в сишном коде проверял, что-то имено с этой структурой не так ...