【问题标题】:"unsafe code may only appear if compiling with /unsafe"“不安全代码可能仅在使用 /unsafe 编译时出现”
【发布时间】:2015-05-21 15:44:22
【问题描述】:

我有一个 Web 应用程序,并且在其中一个类中定义了以下内容(部分):

public class DllFunction
{
    [DllImport("CARSDBI.dll", EntryPoint="CARSDBI_EnableLogging")]
    public static extern unsafe void CARSDBI_EnableLogging(int bSetting);
    ....
}

我收到“不安全代码可能仅在使用 /unsafe 编译时出现”错误。搜索此错误消息似乎显示了一种解决方案:在“项目属性”页面的“构建”选项卡中选中“允许不安全代码”。

但是,当我右键单击项目并选择属性然后选择构建选项时,我没有看到此复选框,我看到的只是:

选择“构建网站”的下拉列表“运行启动页面之前”,选择“.NET Framework 3.5”的目标框架并选中“构建网站作为解决方案的一部分”的构建解决方案操作。

【问题讨论】:

    标签: c# .net-3.5 dllimport unsafe


    【解决方案1】:

    当您在代码中使用 unsafe 关键字时会发生此错误。

    解决方案 您可以轻松解决此问题,请按照以下说明操作。

    右键单击您的项目->然后转到属性 选择 Build 选项,然后选中 Allow Unsafe Code

    实际上我在下面的代码中遇到了同样的问题,所以我这样做了

    struct Point
    {
        public int x, y;
    }
    
    class MainClass12
    {
        unsafe static void Main()
        {
          Point pt = new Point();
          Point* pp = &pt;
          pp->x = 123;
          pp->y = 456;
          Console.WriteLine("{0} {1}", pt.x, pt.y);
        }
    } 
    

    【讨论】:

    • 这里是VS2015,属性窗口的任何地方都没有这样的选项。
    • @SaeedNamati 不确定您是否还需要解决您的问题,但是如果您右键单击您的项目,您应该能够找到允许不安全代码的选项,如下面的屏幕截图所示答案:stackoverflow.com/a/6771861
    【解决方案2】:

    由于某种原因,我无法添加评论,但这个问题有您正在寻找的答案:how to add unsafe keyword in web based asp.net application c#

    【讨论】:

      猜你喜欢
      • 2011-01-02
      • 2011-04-30
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多