参加微软黑客马拉松经历

这次参加黑客马拉松,队伍一共三人,一个是微软俱乐部部长,另一个是一个女生。
我来总结下我的工作吧。

我们的作品是一个VS的插件,主要功能是为C++生成Get,Set方法。
VS插件有两种,一个是AddIn,另一个是VSPackage。我使用的是前者,前者是一种旧的技术,微软推荐VS2008以后开发VS插件都使用VS SDK开发VSPackage,由于我看过C++做AddIn的,对AddIn有了一定的了解,所以我最后决定用C#写AddIn。

因为部长说他擅长C++,我们发现C++也可以写VS的插件,所以我们一开始用的是C++作为开发语言。因为以前没做过VS插件,所以要找一些教程作为入门,于是我们找到了两份教程,感谢这两位Engineer,他们带我入了门吧。第一篇,第二篇
但是由于对C++的COM编程不熟悉,又由于网上关于C++做VS插件的资料少之又少,在使用CComPtr智能指针遇上各种问题无解之后,我们决定改用C#。因为网上关于C#做VS插件的资料非常多。我花了一上午加一晚上的时间,就将这个插件的雏形写了出来。

AddIn的主要类就是Connect,创建工程后,它有OnConnection,Exec,等等方法,因为只是入门,所以后面的方法我都没有去详细了解,竞赛要求在这段时间内做出一个Demo就可以了。

OnConnection

就是做一些初始化的东西,比如说添加一个右击菜单项,添加菜单栏之类的操作都是在这里面做的。

Exec

这个函数是在我们触发一个事件之后执行的,比如说单击了我们添加的那个右击菜单项。
通过commandName这个参数来判断是触发了哪个点击。

既然知道了这些,我们在OnConnection函数里添加一个右击菜单来实现触发生成GetSet方法的触发器。然后在Exec函数里得到我们选中的文本,然后在做些字符串处理,提取出选中的变量类型,变量名字,我们就可以生成GetSet方法了,再添加到当前的Document中,就完成了!!!!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>