当前位置:数据分析 > vs2012内存泄漏【vs2019内存泄漏】

vs2012内存泄漏【vs2019内存泄漏】

  • 发布:2023-10-04 13:20

vs2012安装失败。

首先要排除是否是内存不足导致的。 VS2012对电脑配置要求也比较高。安装失败的原因有很多。如果您使用的是 Windows Vista 并启用了 UAC,请确保将补丁提取到其他位置。目录,并且模型不是“c:\”(否则您将看到访问被拒绝的错误)。

要验证此修补程序是否安装成功,请启动 VS 2012,选择“帮助”-“关于”菜单项,并确认有一条记录为“Hotfix for Microsoft Visual Studio Team System 2012 Team Suite – ENU (KB946581)” ”。

如果要删除此补丁,请转到控制面板 - 添加/删除程序,在 Microsoft Visual Studio 2012(或 Visual Web Developer Express 2012)下选择“Hotfix for Microsoft Visual Studio 2012 – KB946581”,然后单击“去掉“”。

如果还是不行,就只能重新安装了。重新安装时请勿覆盖橙色盖安装。卸载所有VS2012【你自己应该知道如何卸载】,

[img]

如何更改VS2012的背景

开始之前,请准备好 Visual Studio 2012 SDK

安装好SDK后,进入VS。首先新建一个Project,在“其他项目类型”中找到“Visual Studio Package”

在接下来的对话框中选择“C#”,然后基本下一步。在最后一步中取消选中这两个复选框,因为它们在这里没有用处。最后,我成功创建了一个新的VS扩展项目

3。初步改造

第一步,给VS添加背景图片。首先,添加 WPF 程序集作为对项目的引用。其中有四个,分别是“PresentationCore”、“PresentationFramework”、“System.Xaml”和“WindowsBase”。然后打开“XXXPackage.cs”(XXX一般是这个Project的名称)文件,代码如下:

使用www.sychzs.cn;

使用Microsoft.VisualStudio.Shell.Interop;

使用系统;

使用 System.Runtime.InteropServices;

使用System.Windows;

使用System.Windows.Controls;

使用www.sychzs.cn;

使用 System.Windows.Media.Imaging;

namespace Moen.IDEBackground //命名空间自己回自己用的修改

{

[PackageRegistration(UseManagedResourcesOnly = true)]

[InstalledProductRegistration("#110", "#112","1.0", IconResourceID = 400)]

[Guid(GuidList.guidIDE_BackgroundPkgString)]

[提供自动加载(UIContextGuids.NoSolution)]

[提供自动加载(UIContextGuids.SolutionExists)]

公共密封类 IDEBackgroundPackage :Package

{

受保护覆盖​​ void Initialize()

{

base.Initialize();

Application.Current.MainWindow.Loaded += MainWindow_Loaded;

rRootGrid.Children.Insert(0, rImageControl);

}

}

}

修改代码后,调试,编译扩展,然后启动实验VS。 (如果是第一次启动实验VS,可能需要像刚安装VS一样进行设置)然后你会看到角落里出现了背景图片

(无需调试即可进入实验VS的方法:开始菜单-Microsoft Visual Studio 2012-Microsoft Visual Studio SDK-工具-启动Visual Studio 2012实验实例)

4。修改肤色

为了方便,在实验VS中进入“工具-扩展功能和更新程序”,选择“在线”部分,然后在中间找到“Visual Studio 2012 Color ThemeEditor”并安装,重启实验VS

重启后,进入“工具-自定义颜色”。本示例基于深色,因此在左侧“新建主题”区域中,直接在文本框中输入皮肤名称,然后单击“创建”。这将带您进入肤色表

首先去掉主界面上大片的灰色区域。找到以“Environment→EnvironmentBackgroundGradient”开头的,并将所有的不透明度设置为0。然后单击表格左上角的“保存并应用主题”以关闭所有页面。然后你就会看到背景

继续,找到“Environment→MainWindowActiveCaption”、“Environment→MainWindowInactiveCaption”、“Environment→CommandShelfBackgroundGradientXXX”、“Environment→CommandShelfHighlightGradientXXX”、“Environment→CommandBarGradientXXX”、“Environment→CommandBarToolBarBorder”,并将不透明度设置为0,

然后涂抹。上面也没有灰色

至于这些对应在哪里,你可以通过名称来确定,但并不准确。详细的弄清楚是非常麻烦的。你得用反编译软件找到你要修改的控件的xaml文档,找到对应的画笔名。它非常复杂,所以我在这里提供我所使用的。点击“自定义颜色”下的“导入主题”

5。编辑

到目前为止,打开文件后,编辑器的背景还是黑色的。下一步就是去除这层黑色层

首先打开“source.extension.vsixmanifest”文件,进入“Assets”选项卡,点击“New”按钮。在弹出的对话框中,“类型”选择“Microsoft.VisualStudio.MefComponent”,“源”选择“当前解决方案中的项目”,“项目”选择当前项目。目前应该只有一种选择。终于OK了

接下来,创建一个新文件,这里命名为“EditorBackground.cs”

在输入代码之前添加一些引用 - System.ComponentModel.Composition、Microsoft.VisualStudio.CoreUtility、Microsoft.VisualStudio.Text.UI、Microsoft.VisualStudio.Text.UI.Wpf(最后三个位于“Extensions”中) (四处看看)

完成后,文件代码如下:

undefined

}

void MakeBackgroundTransparent()

{

r_TextView.Background =画笔.透明;

r_ViewStack.Background =Brushes.Transparent;

r_ParentGrid.ClearValue(Grid.BackgroundProperty);

}

void TextView_Loaded(对象发送者,RoatedEventArgs e)

{

if (r_ParentGrid == null)

r_ParentGrid =(Grid)r_Control.Parent;

if (r_ViewStack == null)

r_ViewStack =(Canvas)r_Control.Content;

MakeBackgroundTransparent();

}

voidTextView_BackgroundBrushChanged(对象发送者,BackgroundBrushChangedEventArgse)

{

r_Control.Dispatcher.BeginInvoke(new Action(() =

{

while (r_ParentGrid.Background!= null)

MakeBackgroundTransparent();

}), DispatcherPriority.Render);

}

void TextView_Closed(对象发送者,EventArgs e)

{

//清除委托,防止内存泄漏

r_TextView.Closed -=TextView_Closed;

r_TextView.BackgroundBrushChanged-= TextView_BackgroundBrushChanged;

}

}

}

调试并进入实验VS,进入颜色表,找到“Environment→EnvironmentBackground”,设置一个颜色值(我的例子是#A0000000)作为编辑器的背景色。然后找到“环境→窗口”并将其设置为透明

6。完结

基本的VS界面修改就这样了。但有一个棘手的问题——xaml编辑器和各个编辑器(例如HTML)托管在VS的一个子窗口上,而这个窗口的背景是黑色的。还在研究中...

vs2012中有几种检查内存泄漏的方法

首先,在文档的标题中添加以下内容:

#ifdef _DEBUG

#define DEBUG_CLIENTBLOCK new(_CLIENT_BLOCK, __FILE__, __LINE__)

#else

#define DEBUG_CLIENTBLOCK

#endif

#define _CRTDBG_MAP_ALLOC

#include stdlib.h

#include crtdbg.h

#ifdef _DEBUG

#定义新的DEBUG_CLIENTBLOCK

#endif

然后在主函数前面添加一个函数调用:

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_LEAK_CHECK_DF);

注意程序必须在debug模式下编译和运行,而不是release模式。然后程序执行后,你会在VS输出窗口中看到可能存在内存泄漏的信息。

我的VS2012没有头文件conio.h怎么办

建议大家使用VS2015或者2013,VS2012不好用,还有bug,

例如:如果在MFC中使用线程,就会提示内存泄漏。如果把同样的代码放在VS2013或者2015中,内存泄漏信息就会消失!

Visual Studio 2012 可以写任何声音吗?

.c是c语言的源程序,

.cpp是c++语言的源程序,

这是两种不同的语言,具有不同的语法。不过C++兼容了C语言的大部分语法特性,所以这段代码在C++中可以运行,但在C语言中会报错。

下面以常见的hello world为例。

1。打开vs2012-文件-新建-项目,点击(如图)

2。在对话框左侧找到模板-其他语言-Visual C++-win32(如图)。选择“Win32控制台应用程序”并设置“名称”和“存储路径”,然后单击确定

3。单击下一步

4。然后勾选“空项目”

5。然后点击菜单栏-查看-解决方案资源管理器

6。在弹出的浮动窗口中右键“源文件”(如图)

7。然后选择-添加-新建项目并点击(如图)

8。然后选择Visual C++然后选择“c++文件”并命名为holloworld.c

9。然后输入c语言代码

8。 C# 是专门为基于 GUI 的环境(不仅仅是 Windows 环境,尽管现在仅在 Windows 中可用)中进行编程和后台服务(例如 Web 服务)而设计的。这与语言本身无关,而是体现在基类库的设计上。

关于vs2012内存泄漏和vs2019内存泄漏的介绍到此结束。您找到您需要的信息了吗?如果您想了解更多相关信息,请记得添加书签并关注本网站。

相关文章

最新资讯