首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行在64BitOperatingSystem上的32位进程的C#预处理器

运行在64BitOperatingSystem上的32位进程的C#预处理器
EN

Stack Overflow用户
提问于 2013-06-06 13:09:59
回答 2查看 86关注 0票数 0

如何使用C#预处理器指令查找在64BitOperatingSystem上运行的32BitProcess

为了获得更多信息,我需要声明dll名称(基于位)来访问外部函数。我需要以下代码使用预处理器的方式。

代码语言:javascript
复制
public String WABDll; 
if (64Bit)
{
    WABDll = "Win-64.dll";
}
else if(32Bit Process on 64BitOS)
{
   WABDll = "Win-32on64.dll";
}
else if(32Bit)
{
    WABDll = "Win-32.dll";
}

我尝试了下面的方法

代码语言:javascript
复制
#if _64BIT
    public const String WABDll = "Win-64.dll";
#elif _32BIT
    public const String WABDll = "Win-32on64.dll";
#else
    public const String WABDll = "Win-32.dll";
#endif

有什么建议吗。

EN

回答 2

Stack Overflow用户

发布于 2013-06-06 13:17:13

不要使用预处理器指令这样做;在运行时使用the Environment class确定环境。Is64BitOperatingSystemIs64BitProcess属性应该为您提供所需的信息。

票数 2
EN

Stack Overflow用户

发布于 2013-06-06 13:16:08

你不能解决这个问题:

代码语言:javascript
复制
else if(32Bit Process on 64BitOS)
{
   WABDll = "Win-32on64.dll";
}

编译时间,因为编译器事先不知道程序将在哪里运行。我可以建议你创建更多的解决方案"paltform",声明一些自定义的编译器标志,并相应地使用它们。当然,您需要知道部署时间,哪些可执行文件必须在哪个平台上运行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16954065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档