首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

VS2008 C# 错误 InvalidProgramException

2013-11-01 
VS2008 C#异常 InvalidProgramException最近在写一代程序是要用到指针,代码如下,编译时能通过,但运行就报

VS2008 C# 异常 InvalidProgramException
最近在写一代程序是要用到指针,代码如下,编译时能通过,但运行就报异常:InvalidProgramException:
当程序包含无效 Microsoft 中间语言 (MSIL) 或元数据时将引发的异常。这通常表示生成程序的编译器中有 bug。


using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace SmartDeviceProject2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            unsafe
            {
                int i = 0;
                int j = 0
                MessageBox.Show("sdfsfsfsdfsdfsdfs");
                int* p = stackalloc int[1222];
                MessageBox.Show("sdfsfsfsdfsdfsdfs");
            }
        }
    }
}

A:每次点击BUTTON事件时就报错,(以上是测试代码,编译时能通过)。如果屏蔽掉  int* p = stackalloc int[1222];这句就正常(Wince平台)。
B:以上代码在XP平台下运行正常,WINCE平台就报错。感觉好像WINCE平台不支持stackalloc 关键字似的?还是我那里参数没设好似的。现求教,谢谢。
C:WINCE平台 VS2008 C# 异常 指针
[解决办法]
// compile with: /unsafe

    class UnsafeTest
    {
       // Unsafe method: takes pointer to int:
       unsafe static void SquarePtrParam(int* p)
       {
          *p *= *p;
       }

       unsafe static void Main()
       {
          int i = 5;
          // Unsafe method: uses address-of operator (&):
          SquarePtrParam(&i);
          Console.WriteLine(i);
       }
    }
    // Output: 25

热点排行