繁体   English   中英

运行时C#知道正在使用32位还是64位版本的COM接口

[英]Runtime C# knowing if 32-bit or 64-bit version of COM Interface is being used

我想使用COM Interop和C#来构建DLL类库,目标是ANY CPU,并将其注册为32位和64位接口。

我希望能够在运行时显示使用了什么接口-如果我使用的是32位版本或64位版本。

有任何想法吗?

为了使进程加载32位DLL,该进程必须为32位。 与64位相同。 因此,要找出已经加载的内容(假设它已经起作用),您只需要找出CLR的位数即可:

if (System.IntPtr.Size == 8)
{
    // 64-bit
}
else
{
    // 32-bit
}

PS。 有关是否需要检查16号尺寸的讨论,请参阅我对这个问题的回答

再次,在win64上运行的32位进程又如何呢?

https://stackoverflow.com/a/3461562/1498669

如果您使用的是.Net 4.0,则它是当前流程的一线工具:

Environment.Is64BitProcess

http://msdn.microsoft.com/zh-CN/library/system.environment.is64bitprocess.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM