C# 来源与2012年相比不可用

C# 来源与2012年相比不可用,c#,winforms,visual-studio-2012,dll,event-handling,C#,Winforms,Visual Studio 2012,Dll,Event Handling,源不可用不断弹出 我已经在谷歌搜索了很长一段时间了,我看到的大多数解决方案都是更改VisualStudio的设置,尝试过,但仍然没有解决问题 我有以下代码 [DllImport("BS2dll.dll", CallingConvention = CallingConvention.StdCall)] [return: MarshalAs(UnmanagedType.I1)] public static extern bool FiRE(int ptr, int l); 以另一种

源不可用不断弹出

我已经在谷歌搜索了很长一段时间了,我看到的大多数解决方案都是更改VisualStudio的设置,尝试过,但仍然没有解决问题

我有以下代码

[DllImport("BS2dll.dll", CallingConvention = CallingConvention.StdCall)]
    [return: MarshalAs(UnmanagedType.I1)]
    public static extern bool FiRE(int ptr, int l);
以另一种形式

public  void createButton2()
        {
            int x = 0, y = 0;
            butt2 = new Button[100];

            for (int i = 0; i < 100; i++)
            {
               butt2[i] = new Button();
                int names = i;
               butt2[i].Name = "2" + names.ToString();
               butt2[i].Location = new Point(520 + (x * 31), 70 + (y * 21));
               butt2[i].Visible = true;
               butt2[i].Size = new Size(32, 22);
               butt2[i].BackColor = Color.CornflowerBlue;
               this.Controls.Add(butt2[i]);
               butt2[i].Click += new EventHandler(butt2_2_Click);

                x++;

                if (x == 10)
                {
                    x = 0; y++;
                }
            }

        }
即使我注释
hit=UnsafeMethodCall.FiRE(objPtr,loc)它仍然存在

我的dll是否有用

    void __stdcall FiRE(int *ptr, int l)
    {
        Battleship *dll =  (Battleship *) ptr;
        dll->FIRE(l);
    }

bool Battleship::FIRE( int l) //check if hit or miss
    {

        for(int i= 0; i<17; i++)
        {
            if (board[i]==l)
            {
            hit = true;
            break;
            }
            else
                hit = false;
            break;
            }   

                return hit;

    } 
void\uu stdcall火灾(int*ptr,int l)
{
战列舰*dll=(战列舰*)ptr;
dll->火灾(l);
}
布尔战列舰::开火(int l)//检查命中与否
{

对于(int i=0;i,您应该检查并确保正在查看所有源文件,尤其是您导入的外部库。转到解决方案并右键单击属性。在窗口中,弹出[下面]转到调试源文件


您需要通过调试查明是哪一行代码导致了问题,并找出缺少的源代码库。您可以设置断点,查看是否到达某个位置并缩小范围。退出事件处理程序时,会显示错误
    void __stdcall FiRE(int *ptr, int l)
    {
        Battleship *dll =  (Battleship *) ptr;
        dll->FIRE(l);
    }

bool Battleship::FIRE( int l) //check if hit or miss
    {

        for(int i= 0; i<17; i++)
        {
            if (board[i]==l)
            {
            hit = true;
            break;
            }
            else
                hit = false;
            break;
            }   

                return hit;

    }