[英]C# 64-bit COM component for both 32-bit app and 64-bit Microsoft Excel VBA clients
[英]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.