驱动、MFC项目改名、代码移植技巧,复制别人项目中的界面资源以及合并项目


驱动、MFC项目改名、代码移植技巧

有时候我们可能会在一个解决方案里不断的迭代更新项目(就是复制一个项目文件夹,粘贴后改名字,在项目文件中修改代码增加功能,所以需要修改对应文件的文件名、以及文件里的文件名字符串。

1、复制一份以前的项目,对该项目文件夹里的如下扩展名文件的文件名进行修改:
.vcxproj
.vcxproj.filters
.vcxproj.user
.rc
res文件夹下的.rc2

2、驱动项目需要修改.vcxproj文件里内容:

  • 修改标签中的项目名称(有的不同vs版本没有该标签就不用管了);
  • 并将*.vcxproj、.filters和.vcxproj.filters文件中如下所示标签中的.c文件名修改为你自己的相应文件名:
<ClCompile Include="DriverEntry.c" />

3、用notepad++打开.vcxproj、.vcxproj.filters文件,替换里面相应的文件名字符串:
例如.vcxproj项目文件中的.rc的文件名字符串(有2处)和.rc2文件名字符串(有1处),修改<RootNamespace>标签中的文件名字符串(MFC项目);
例如.vcxproj.filters中的.rc和.rc2的文件名字符串(各1处)(MFC项目)。

4、用notepad++打开.rc文件,修改里面相应的.rc2的文件名字符串(有2处)(MFC项目)。

5、如果复制的新项目中有.sln文件,可以删除掉,只在同一个解决方案里添加新项目的.vcxproj即可;而有时候并不是在同一个解决方案中的话,就要修改.sln文件里的旧文件名字符串为新的文件名字符串。

6、为了验证操作的正确性,我们可以打开MFC项目中的资源视图,打开对话框模板,双击里面某个已有的按钮,看是否能进入对应的处理函数,如果能就说明移植成功。

7、另外,如果新项目中有不需要的ARM、Mixed Platform等其他编译选项的话,可以点击配置管理器,点击活动解决方案平台右边的下拉三角按钮,点击编辑,移除掉ARM和ARM64,只保留x86和x64选项。

复制别人项目中的界面资源

首先,按照上面第9项用一个visual studio打开自己和别人项目中的.rc文件,如下图所示:

在这里插入图片描述
在这里插入图片描述
拖动成上图所示样式,方便操作,然后复制对方相关资源,粘贴到自己项目中即可:

在这里插入图片描述
在这里插入图片描述

这样,别人项目中的资源就成你自己的了,还不用修改资源ID,这样做非常非常方便,节省我们很多时间。
当然,在你不知道资源分别代表什么的情况下,可以双击打开相应的资源,复制该资源上的控件,然后粘贴到自己的对话框上,复制过来的资源ID不变。

还有一种方法

在打开我们自己的项目后,,你再点击vs菜单中的文件、打开、文件,打开别人项目中的.rc文件,此时你是复制不了资源的,也拖动不了,怎么办呢?
打开自己项目的解决方案资源管理器,鼠标右击源文件、添加、现有项:

在这里插入图片描述

将别人项目中的.rc文件添加进来,这样我们的项目中就有两个.rc资源文件了:

在这里插入图片描述

拖动或者复制资源都可以了,记得拖完了之后把刚才添加进来的别人的资源文件删掉了,不保存别人的东西。

然后就是常规操作了,将别人项目中相应的功能cpp文件和.h文件粘贴到自己项目的目录中,点击vs菜单中的项目、添加现有项,将自己项目目录中刚粘贴的.cpp和.h文件添加进来,这样类视图中就有对应的类了,然后再做适当修改通过编译,我们就能够很轻松的把别人项目中的功能一个一个的移植到我们的项目当中了。


双击项目中的*.rc文件,打开vs后无反应,无法打开.rc文件

搜索rc.exe和rcdll.dll这两个文件(本地搜索或百度搜索),拷贝到

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

重新打开*.rc文件,如果还是无反应,点击vs菜单中的文件、打开、文件,选择.rc文件即可打开。


合并两个已有的.sln项目

用vs打开其中一个项目,在解决方案上面鼠标右击、添加、现有项目,打开另一个项目的文件目录,这时候可能看不到.sln文件,如下图所示,选择文件名编辑框右边的扩展名组合框,选择解决方案文件(*.sln):

在这里插入图片描述
打开另一个项目的.sln,就会自动把该项目中的多个工程自动添加进来了,类视图、资源文件中也自动包含了另一个项目中的内容。


猜你喜欢

转载自blog.csdn.net/zhaopeng01zp/article/details/128581971