首页 > 解决方案 > cs文件在vs中表现得很奇怪

问题描述

#if _WIN32
        const string DLL_NAME = "uFCoder-x86.dll"; // for x86 target
#elif _WIN64
        const string DLL_NAME = "uFCoder-x86_64.dll"; // for x64 target
#else // #elif _ARM
        const string DLL_NAME = "uFCoder-arm.dll"; // for ARM target
#endif

有谁知道这里发生了什么?我尝试从 MainPage 调用我的 cs 文件并在调试 64/84 中运行。正确地,当我在以 64/84 运行之间切换时,它应该相应地改变,但是在将文件移动到新位置后,它一直卡在 else 条件并且返回也出错了。我在 UWP Visual Studio 中运行它。

标签: c#if-statementuwp

解决方案


C# 中没有开箱即用的 _WIN32 或 _WIN64 预处理器指令。请参阅#if(C# 参考)

您必须自己定义它们或使用其他机制。您可以查看C# Directive 以指示 32 位或 64 位构建


自己定义符号

解决方案属性 -> 项目属性 -> 构建 -> 将它们添加到条件编译符号中:

在此处输入图像描述

请记住将它们添加到调试和发布配置中。

另外,请注意,这是针对每个项目的,而不是针对整个解决方案的。


推荐阅读