我想建立一個DLL類庫使用COM Interop和C#,目標ANY CPU,並將其註冊爲32位和64位版本,位接口。運行時C#知道是否正在使用32位或64位版本的COM接口
我希望能夠在運行時顯示使用什麼接口 - 如果我使用的是32位版本或64位版本。
任何想法?
我想建立一個DLL類庫使用COM Interop和C#,目標ANY CPU,並將其註冊爲32位和64位版本,位接口。運行時C#知道是否正在使用32位或64位版本的COM接口
我希望能夠在運行時顯示使用什麼接口 - 如果我使用的是32位版本或64位版本。
任何想法?
爲了使進程加載32位DLL,進程必須是32位。和64位相同。因此,要找出已經被加載,假設它已經工作,你只需要找出CLR的位岬:
if (System.IntPtr.Size == 8)
{
// 64-bit
}
else
{
// 32-bit
}
PS。有關您是否需要檢查大小爲16的討論,請參見my answer to this question。
再說一次,在win64上運行的32位進程呢?
https://stackoverflow.com/a/3461562/1498669
如果你使用.NET 4.0,這是一個班輪當前進程:
Environment.Is64BitProcess
http://msdn.microsoft.com/en-us/library/system.environment.is64bitprocess.aspx
你可以只說,如果(IntPtr.Size == 8) – Sean 2008-12-16 17:51:47