2
我被傳下來了一個庫,作爲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位版本時都不需要手動調整評論。 (還是有辦法讓這個dll目標CPU全兼容)
Link to the MSDN of the datatype
我還添加了這對[pinvoke.net](http://pinvoke.net/default.aspx/Structures/BG_BASIC_CREDENTIALS.html |) – 2010-10-05 08:16:51