Мне была вручена библиотека, которая была разработана в доме в качестве обертки для BITS. Мне сказали, что если вы хотите изменить между 64-битной и 32-битной строкой, вам нужно будет поменять эти две строки с комментариями.Объявление P/Invoke кажется неправильным
[StructLayout(LayoutKind.Explicit, Size = 8, Pack = 4)] //32 bit address
internal struct BG_BASIC_CREDENTIALS
{
[FieldOffset(0)]
[MarshalAs(UnmanagedType.LPWStr)]
public string UserName;
[FieldOffset(4)]
[MarshalAs(UnmanagedType.LPWStr)]
public string Password;
}
//[StructLayout(LayoutKind.Explicit, Size = 16, Pack = 8)] //64 bit address
//internal struct BG_BASIC_CREDENTIALS
//{
// [FieldOffset(0)]
// [MarshalAs(UnmanagedType.LPWStr)]
// public string UserName;
// [FieldOffset(8)]
// [MarshalAs(UnmanagedType.LPWStr)]
// public string Password;
//}
Это просто не сидеть прямо со мной, был человеком, который я получил от этого делать правильные вещи (этот код развернут на 32 и 64 с помощью выгружен комментария трюка, так что я знаю, что это работает) , Если это то, что нужно сделать, есть ли способ сделать так, чтобы комментарий не нужно настраивать вручную каждый раз, когда выполняется 32 или 64-битная сборка? (Или способ, чтобы сделать эту цель длл процессор все совместимые)
Link to the MSDN of the datatype
Я также добавил это [pinvoke.net] (http: //pinvoke.net/default.aspx/Structures/BG_BASIC_CREDENTIALS.html |) –