1

TabSiPlus开源代码如何使用

 3 years ago
source link: https://blog.csdn.net/orbit/article/details/51212966
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

先回答几个问题

1、为什么不出64位版本的TabSiPlus?

       有一些朋友问我,现在很多人都用64位的操作系统了,TabSiPlus什么时候出64位的外挂版本?这里统一回答一下,目前没有出64位外挂的计划,因为没有必要。目前最新的Source Insight仍然只支持32位版本,TabSiPlus也只能在32位这个圈子里和Source Insight玩玩,就算出个64位外挂也用不了,对吧?

2、为什么Tabbar的颜色这么难看?

       这个真是汗颜,操作GDI函数画出每个item的时候,我只是想着能看到现象就行了,重要的是程序中的其他逻辑,最后的结果就是顾不上美观了。我其实有一套自己感觉很舒服的主题,大家也可以自己调调嘛,实在看不顺眼就加入开发人员列表,直接改代码吧。到目前未知,TabSiPlus的库虽然被fork了几次,但是没有人愿意给master分支贡献一行代码,对这种情况,我也是脸上三条线啊。

3、为什么从上个版本就承诺的集成版本控制工具到现在还没有?

       原因是获取文件的完整路径存在问题。毕竟是外挂,没有办法获得新打开窗口对应的文件的完整路径,虽然Hook了CreateFile这个API,根据文件名可以和窗口匹配一下,但是遇到项目中有重名文件的时候就不好使了。版本控制出不得一点差错,入错库是很麻烦的,在很多软件团队中都是有严格规定的,TabSiPlus也不想给自己惹麻烦,所以就不支持了。

怎么编译TabSiPlus

       这是个问题,我一直以为直接看代码就能知道是怎么回事儿了,再加上本博客有一系列文章介绍了给Source Insight做外挂的完整过程,编译和使用代码应该就不是个事儿啊。但是,还是很多朋友反馈说不知道怎么编译和调试,有人甚至黑我是假开源,真是无语啊。这里我把编译和调试的方法详细说一下,希望黑我的那哥们看到后能自己拍几下脸意思一下。
       要编译TabSiPlus,请安装Visual Studio 2008或更高的Visual Studio版本,直接打开TabSi.sln项目。有人说,你不是有TabSi.dsw嘛,为什么说不支持VC 6.0?看看这个文件的时间啊,这个文件都好几年没修改过了,留着应该是为了纪念VC 6.0这个版本吧。其实也不全是,如果你还在用低版本的Visual Studio,可以打开这个TabSi.dsw转换一下,这才是使用TabSi.dsw的正确姿势。还在使用Visual Studio 98的同学,请你看看日历。通过TabSi.dsw转换打开TabSi项目也还是有问题,因为这个文件太老了,你需要根据TabSi.sln中的文件列表,调整源代码文件,否则是无法编译的,很多同学说编译错误,其实就是这个原因。用正确的Visual Studio版本打开TabSi.sln项目,编译应该是没有问题的。
       对于使用Visual Studio 2012或Visual Studio 2015的同学,需要注意一下,可能这些版本的开发工具已经不支持非unicode版本的MFC库了,这就意味着TabSiPlus.dll必须编译成unicode版本,而Source Insight据我观察目前仍然是非unicode的,是否能匹配使用是个问题,有这么用的同学请反馈一下结果,多谢哈。

怎么调试TabSiPlusTab

       TabSiPlus的三个组件是可以独立编译的,TabSiHost.exe是常驻内存的组件,负责找到Source Insight并加载TabSiPlus.dll。因为TabSiHost.exe要向Source Insight注入代码,注入的代码必须是没有调试信息的,也就是说,TabSiHost.exe必须编译成Release版本使用。如果你要调试TabSiPlus.dll,需要将Release目录中的TabSiHost.exe复制到Debug目录,然后在Debug目录运行TabSiHost.exe,TabSiHost.exe会自动加载在同一目录中的TabSiPlus.dll。很多朋友调试失败,估计就是因为用了Debug版本的TabSiHost.exe导致代码注入失败。
       调试TabSiPlus.dll需要设置TabSiPlus项目的调试属性,如图1所示,将command设置为source insignt的路径,然后就可以调试了。整个流程是这样跑的,启动调试,Visual Studio的调试器首先启动Source Insight,驻留内存的TabSiHost.exe检测到source insignt后,向其注入代码,将TabSiPlus.dll加载到source insignt进程中,此时TabSiPlus.dll中的代码就被激活,设置的断点也会生效。
这里写图片描述
图1 设置项目属性


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK