首页 - 通讯 - vs2010安全模式_Visual Studio 2010——C#中的Unsafe模式

vs2010安全模式_Visual Studio 2010——C#中的Unsafe模式

2023-09-24 02:35

实验环境:Windows XP,Visual Studio 2010 ?Ultimate

? ? ? ? 由于在C#中指针的使用被认为是“不安全代码”,因此在大多数情况下不鼓励使用,但是在有些情况下使用指针会使编程更加简单,并能够提高程序的性能。下面使用一个简单的程序来演示指针在C#中的使用。

1 创建项目

? ? 文件>>新建>>项目,选中“控制台应用程序”,如下图所示:

? ??

2 添加代码如所示意。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace testPointer

{

? ? public struct Gas

? ? {

? ? ? ? internal double p;

? ? ? ? internal double t;

? ? ? ? public Gas(double p, double t)

? ? ? ? {

? ? ? ? ? ? this.p = p;

? ? ? ? ? ? this.t = t;

? ? ? ? }

? ? }

? ? //unsafe——非安全模式

? ? public unsafe class Program

? ? {

?

? ? ? ? static void Main(string[] args)

? ? ? ? {

? ? ? ? ? ? Gas g = new Gas(100.0, 300.0);

? ? ? ? ? ? WriteContents(&g);

? ? ? ? }

? ? ? ? //C#中使用指针被认为是不安的

? ? ? ? public static void WriteContents(Gas* gas)

? ? ? ? {

? ? ? ? ? ? Console.WriteLine("p is {0}", gas->p);

? ? ? ? ? ? Console.WriteLine("t is {0}",gas->t);

? ? ? ? }

? ? }

}

3 调试

3.1 为了是的Viusal Studio 2010能够进行不安全模式的调试,要进行一些设置。单击菜单栏的“项目”|"xxx属性",然后在弹出来的窗体中,

选中"生成",勾选“允许不安全代码”。如下图所示(xxx是你给项目起的名字)。

? ? ? ? 3.2 设置完成后,就可以调试了。单击菜单栏的“调试”|“启动调试”,结果如下图。

4 工程源码。点击这里下载。

参考资料

《C#实用编程百例》,清华大学出版社,何鹏飞,王征等 编著

《C#程序设计——基础教程与实验指导》——清华大学出版社,孙晓非 牛小平 冯冠 ?李乃文 编著

《C#程序设计与案例教程》,清华大学出版社,杨树林,胡洁萍 编著

用着用着忽然弹出对话框错误提示:

Microsoft(R) Visual C++ Package Server 已停止工作

?? 出现了一个问题,导致程序停止正常工作。请关闭该程序。

“关闭程序” “调试程序”

?

顺带一说,我是 Win7 Sp1, ? Hp g4. i3. 4G

?

网上寻得答案,已解决问题:

VCPkgSrv?是关于Visual Studio 2010?中IntelliSense。?您可以从菜单栏中的工具-》选项-》文本编辑-》C/C++-》高级-》IntelliSense-》禁用IntelliSense。关闭此程序。此外,我也建议您可以把您的问题提交到以下地址,以获得更多的支持:http://www.gsm-guard.net/

?

?

?

这里是connect?上关于这个问题的一些链接:

?

1.?http://www.gsm-guard.net/VisualStudio/feedback/details/637217/vcpkgsrv-exe-crashing

?

2.?http://www.gsm-guard.net/VisualStudio/feedback/details/636817/vcpkgsrv-exe-crashes-periodically

?

3.?http://www.gsm-guard.net/VisualStudio/feedback/details/633235/vcpkgsrv-crashing-all-the-time-intellisense-not-working

?

4.?http://www.gsm-guard.net/VisualStudio/feedback/details/635679/vcpkgsrv-exe-constantly-crashing-precompiled-headers-involved。

?

5.?http://www.gsm-guard.net/VisualStudio/feedback/details/502514/vcpkgsrv-exe-throwing-exceptions-on-browsing-project-files

?

解决问题的网站链接:

http://www.gsm-guard.net/Forums/zh-CN/visualcpluszhchs/thread/57e9cc33-b76b-4009-9eb5-ae4722ac1fb3/?

也不知道到底怎么了,就出现这种奇怪的问题了,只要是新建项目或者新建文件,VS2010 就卡死,发现线程数 由开始的30 突增 到370多个,然后CPU利用率居高,最后堆栈溢出,崩溃。下面就是崩溃的截图:

然后着急啊,真TMD对微软的产品感到恶心!微软 就会 将他们的产品集成到系统。微软的 安装服务 也是超级恶心,一次只能安装或卸载一个软件,而且 微软的产品经常还要安装源文件,真是对微软的产品反感 啊。。

然后搜索:vs2010 已经停止工作

看到?http://www.gsm-guard.net/blog/static/7084345520117141839833/?终于解决了VS2010的已停止工作的问题了这问题真是搞笑啊。。。

还是看到这个文章才有了希望 :http://www.gsm-guard.net/Forums/zh-CN/vstudiozhchs/thread/52d0a587-bb58-41ea-8b05-a8d1d3d15653

1 打开开始菜单》所有程序》Microsoft Visual Studio》Visual Studio工具》Visual Studio命令行(以管理员身份);

2 激活Visual Studio的日志功能:输入Devenv.exe /log。参见:http://www.gsm-guard.net/zh-cn/library/ms241272.aspx;

3 尝试运行下面的几个devenv开关:devenv /Resetsettings,devenv /ResetSkipPkgs, devenv /Safemode;

4 重新启动系统并进入安全模式,这样可以消除一些第三方的程序/驱动的影响;

5 尝试建立并使用新的用户登陆系统。

devenv /resetSkipPkgs试过,不管用,这几种方法 反正 都尝试一下 吧,结果还真好了:

?

可以新建立项目了,而且线程数 也没有太多。

?

PS:Cnblogs的图片编辑功能 不是很方便,有点无奈,只能手动编辑代码了。

转载于:https://www.gsm-guard.net/ayanmw/archive/2012/10/24/2736731.html