- 博客(24)
- 资源 (3)
- 收藏
- 关注
原创 对一个C#通用类型转换器的改进
using System;using System.Collections.Generic;using System.Text;namespace LoadXml{ ///////////////////////////////////////////////////////////// /// Copyright (C) 2009 Keep
2017-03-20 09:35:47 1352 1
原创 绕过TrustedInstaller权限
HANDLE hFile = CreateFile(m_szNewFile, GENERIC_READ|GENERIC_WRITE,0,0,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL| FILE_FLAG_BACKUP_SEMANTICS,//这个属性太牛逼了,可以绕过权限检查,即使是最高的TrustedInstaller也没问题 NULL)
2016-12-01 21:12:53 3656
原创 在VsPackage中使用errorlist
///errorList ErrorListProvider errorProvider = new ErrorListProvider(this); ErrorTask task = new ErrorTask(); task.Category = TaskCategory.BuildCompile;
2016-12-01 16:36:15 438
原创 在vspackage中使用outputwindow
两种方法:方法1: //output window OutputWindow ow = (this.dte as DTE2).ToolWindows.OutputWindow; OutputWindowPane owP; // Add a new pane to the Output
2016-12-01 16:34:32 1249
原创 在vspackage中使用DTE中的属性框窗口编辑属性
1、使用ITrackSelection接口;2、使用SelectionContainer容器;3、将对象列表放在SelectionContainer容器中;4、使用ITrackSelection接口显示SecletionContainer容器中的对象的属性;https://msdn.microsoft.com/en-us/library/bb165149.a
2016-11-25 16:15:33 667
转载 通过CStdioFile读写unicode字符串
关键有两点:首先:#include "locale.h"接着: _tsetlocale(LC_CTYPE,_T("chs"));
2016-11-23 09:06:43 1542
转载 在vspackage中强制更新command的ui状态(Forcing Command UI refresh)
文章来源:http://www.visualstudioextensibility.com/2014/08/25/forcing-command-ui-refresh/----AddIn的用法As you know, whether you are an add-in developer or a package developer, Visual Stud
2016-11-22 16:59:23 362
原创 信息来源
最近在使用visual studio 2010 shell开发,发现国内的资料十分缺乏,通过baidu找不到什么有价值的东西,无奈之下,通过如下工具,用google查找,逐个找到了解决问题的办法:http://my.yizhihongxing.com/aff.php?aff=3229
2016-11-22 16:19:31 595
转载 在vspackage中修改dte中的命令状态
文章来源:https://social.msdn.microsoft.com/Forums/vstudio/en-US/5b3ffafa-5cc7-4eae-8a7a-29d688872713/vspackage-2010-how-to-enable-copycutpaste-edit-menu-command?forum=vsx&prof=required在ToolWin
2016-11-22 14:32:42 966
转载 Visual studio shell 2010中跟踪当前选中的ToolWindow
Step1:在VSpakage中实现IVsSelectionEvents接口;Step2:在Initiliaze初始话函数中注册之:IVsMonitorSelection ms = Package.GetGlobalService(typeof(IVsMonitorSelection)) as IVsMonitorSelectionif(ms != null){ms.Advis
2016-11-22 10:50:57 689
翻译 visual studio shell 2010的vspacage中的ToolWindow增加关闭时的二次确认功能
1、 public class XXXToolWindow : Microsoft.VisualStudio.Shell.ToolWindowPane, IVsWindowFrameNotify2 实现IVsWindowFrameNotify2接口2、实现OnClose方法 int IVsWindowFrameNotify2.OnClose(ref uint pg
2016-11-18 17:40:05 1207
翻译 在vspackage中创建同一类型的toolwindow的多个实例
1、[ProvideToolWindow(typeof(XXXToolWindow),MultiInstances=true)]2、在显示Toolwindow是方法中,实现如下逻辑: private void ShowXXXToolWindow(object sender, EventArgs e) { // Get the ins
2016-11-18 17:36:16 389
转载 visual studio shell custom command
11down votefavorite4I am creating a Visual Studio Package (this is my first time) and my end goal is to create a context-menu item for the solution explorer that only works on certai
2016-11-17 15:51:24 665
原创 visual studio shell SelectionEvents OnChange事件丢失问题
解决办法如下:http://stackoverflow.com/questions/14165885/add-in-events-are-never-executeddown voteIf you look at applicationObject in the debugger you'll see its a COM obje
2016-11-17 11:30:13 586 1
原创 vs 2015 不能调试winform程序解决办法
First thing you could try is to turn on Project -> Properties -> Debug -> Enable Debuggers -> Enable unmanaged code debugging
2016-11-13 21:15:43 5675 1
原创 字符集的不同导致内存泄露
一个MFC的exe程序,一个MFC的dll动态库,如果二者的字符集(Character Set)设置不一样,debug运行,会导致报告内存泄露,有人说是假泄露。字符集改成一致的就好了。
2016-05-04 15:12:19 366
原创 双缓冲避免闪烁
////////////////////////////////////////////////////////////////////////// //双缓冲绘图,避免闪烁 void CFieldControlStation::DoubleBufferDraw(CDC* pDC, RECT& rcClip) { //用于缓冲作图的内存DC CDC dcMem;
2016-03-18 15:50:50 548
原创 内存位置访问无效
首先:有一个ATL 类型的COM对象,CBusNavObj,此类型的一个全局变量g_pBusNavObject = NULL2、在另外一个地方使用该全局变量3、编译能通过,但是注册的时候回提示如下信息:PRJ0019的错误4、通过双击的方式注册COM文件,弹出如下提示框:5、百思不得其解,后来看到图4中的这一句:内存位
2016-03-01 15:05:45 13425
原创 对COM基本思想的一点儿理解
接口就是就是函数(或者方法)的数组,数组里的元素是函数的指针;通过GUID的方式标识接口;接口由COM类实现,通过GUID的方式标识COM类;注册时,将COM类的guid放到注册表中,并记录此com类的存放位置。
2016-02-15 08:49:55 314
原创 对COM可连接对象机制的理解
因为工作关系学习COM,现在把对事件可连接对象的思路理一下:一个事件接口由一个连接点来管理,就是将一个事件接口的IID与一个连接点对象关联;在实际应用中,一个事件接口可以有很多实现,这些所有的实现都放在这个连接点对象中。所有连接点由连接点容器管理。这样就达到了如下效果:一个对象可以支持多个事件接口,每个事件接口可以关联多个事件接收者。
2016-01-13 09:26:00 465
原创 通过程序将Visio文档 转换为html网页
第一步:VS2010 C#下 添加COM的引用: 第二步:代码如下图: 感谢这个链接:http://jianbinzhang1987.blog.163.com/blog/static/4325362120104199568444/
2015-08-05 11:07:20 1489
原创 MFC CView中添加CListCtrl控件的方法
主要是注意添加时机的问题:如果放在CView的OnCreate中创建CListCtrl是显示不出来的,原因是CView自身还没有创建好呢。可以在在CView的OnInitialUpdate方法中创建CListCtrl,如下图所示:
2015-07-11 14:38:16 4464
Pattern-Oriented.Software.Architecture (Vol.3)
2009-07-30
Design Patterns Gang of Four English
2009-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人