Ⅰ 如何在Visual Studio中利用命令行集成Dotfuscator混淆处理
首先在Visual Studio中打开Dotfuscator:点击菜单栏中的 工具 > PreEmptive Protection - Dotfuscator 打开Dotfuscator。
此处默认新建了Dotfuscator项目,建议先进行保存,将文件保存至你要混淆项目的解决方案文件夹中,如,个人保存的位置为: E:/Projects/OpenSourceProject/ReferenceDoc/Dotfuscator/Samples/DotfuscatorSample/DotfuscatorSample.xml
保存到解决方案文件夹并非必须,此处如此处理可以为了后面进一步处理更加方便。
添加待混淆文件,如图所示:
修改文件路径,将文件路径修改为如下图所示:点击 属性 ,查看 项目属性 - configdir (就是之前的保存位置),然后切换回 输入 ,点击输入中第三个按钮 编辑输入 (那支笔),将路径中与 configdir 匹配的部分替换为 ${configdir} (注意是大括号)。
处理此步骤亦不是必须的,这样处理的原因是为了让我们的配置与本地无关(相对路径),方便其他人合作使用。
至此,基本配置就可以了,点击生成项目就可以进行混淆了。至于其他更多配置见官方文档。
本地可以直接在Dotfuscator工具中点击菜单栏中的 帮助 > 帮助目录 (此为中文文档,基础的配置基本都有)。
帮助文件本地目录参考(中文帮助): C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator and Analytics Community Edition/zh-Hans
配置Visual Studio命令调用Dotfuscator 主要操作就是编辑生成后事件:右击项目 属性 ,切换到 生成事件 页面,编辑 后期生成事件命令行 ,添加如下代码:
此处为了保证只有在Release的模式下使用混淆,故添加了Release判断。
if $(ConfigurationName)==Release "C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator and Analytics Community Edition/dotfuscatorcli.exe" /q "$(SolutionDir)DotfuscatorSample.xml"
代码解释:dotfuscator命令行工具+参数+项目混淆配置文件;其中配置文件之前保存到解决方案文件夹下,故此出可以直接用解决方案文件目录来索引。
代码中唯一不足就是命令行工具使用了绝对路径,vs中的宏参数没有可以直接使用的,若读者有啥好方法将此变为相对路径,望通知。 —— 但关于系统中添加环境变量的法子就不要了,个人不喜。
如果你在此处下一步需要进一步的打包处理,而你又需要Debug模式下一样可以打包测试。如,本人使用WiX打包,需要配置文件路径,方便一点就是要配置为生成路径,但是release模式下,需要将混淆的打包进去,而非直接生成的文件。此时,你不能改打包配置(改路径的话,debug会用不了),所以,你需要在将混淆过的文件拷贝到原来的release生成目录。所以我最后完整的生成事件就是如下代码了:
注意:经测试,如果在Dotfuscator中将生成路径设为文件来源路径,可以生成还会自动覆盖,但软件会用不了,具体原因不明。
if $(ConfigurationName)==Release "C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator and Analytics Community Edition/dotfuscatorcli.exe" /q "$(SolutionDir)DotfuscatorSample.xml" if $(ConfigurationName)==Release x /e /y "$(SolutionDir)Dotfuscated/*.*" "$(TargetDir)"
代码中的目录可以见Dotfuscator配置的生成目录:
Ⅱ 如何在windows系统的cmd命令行下调用VS编译器
1、桌面空白右键,选择新建---快捷方式; 2、输入cmd,点击下一步; 3、可修改名称,点击完成; 4、右键新建的cmd快捷方式,选择属性; 5、点击布局选项卡,屏幕缓存区大小和窗口大小都按照你显示器分辨率设置,点击确定;
Ⅲ vs 命令行编译静态库
_declspec(dllexport) void test_print(char* sz_input);
这是动态链接库 -- dllexport ,dll是动态链接库。
不是你说的静态库。
动态链接库,应用程序调用它,编译链接时要有.lib, 运行时要有.dll
Debug\ -- 给别的程序用,要用 Release\,不能用 Debug\
char * __ptr64 sz_input;
__ptr64 -- 32位机上,指针sz_input截断为32位.
char * __ptr32 sz_input;
__ptr32 -- 64位机上,指针sz_input变32位
wchar_t,_MBCS -- 表明你要用双字节字符,那么程序就不应当用 单字节char 型。如果你要编的不是要用双字节字符,那么 就不要 wchar_t,_MBCS。
Ⅳ 如何用vs和makefile文件进行编译
运行cmd.exe (or command.com in win9x)->进到vc/bin目录->运行vc-vars32.bat->进到makefile 所在的目录->nmake /f makefile
从sourceforge上下载下来的libjpeg源代码中有一个makefile.vc的文件,可以通过nmake /f makefile.vc [nodebug=1]来编译libjpeg,但是只能编译静态库,如果需要编译dll以便在emacs等程序中使用的话,需要修改makefile.vc和jmorecfg.h文件。在makefile.vc文件中添加编译dll规则:
以下内容为程序代码:
libjpeg.lib: $(LIBOBJECTS) $(RM) libjpeg.lib lib -out:libjpeg.lib $(LIBOBJECTS) #
添加以下这行 libjpeg.dll: $(LIBOBJECTS) $(RM) libjpeg.dll link -dll -out:libjpeg.dll $(LIBOBJECTS) 在jmorecfg.h中添加#define _WIN32_#define JPEG_DLL 然后nmake /f makefile.vc nodebug=1就可以编译了。
将makefile复制为一个.mak文件,然后用VC打开即可!
.mak 就是一个makefile
可以指定怎样编译(命令行,必须先设置VC命令行环境)
vcvars32.bat可设置环境,在vc98/bin下 nmake /f XXXX.mak
如果有一个makefile就只要nmake就可以了。
Ⅳ VS2017在Windows10下如何运用命令行编译运行
如果是 dotnet framework 项目,使用 msbuild.exe 进行编译
如果是 dotnet Core 项目,用 dotnet 命令进行编译
Ⅵ vs2013怎么在命令行使用cl编译
1. “cl不是可用的内部命令或可执行程序”
----原因:环境变量Path没有设置好。
----解决:在环境变量Path中添加VC的bin目录。Path= D:\Microsoft Visual Studio 9.0\VC\bin。在D:\Microsoft Visual Studio 9.0\VC\ce\bin下还有其他一些编译器,看名字是交叉编译用的
2.“mspdb80.dll无法找到”
----原因:vs2008的VC\bin目录下缺少msobj80.dll、mspdb80.dll、mspdbcore.dll、mspdbsrv.exe这四个文件。
----解决:在D:\Microsoft Visual Studio 9.0\Common7\IDE下复制这四个文件到VC\bin。
3.解决以上问题以后,可以直接在命令行的任何目录下编译C/C++文件了。可是又出现新状况:
“fatal error: cannot open include file”
----原因:vs2008未设置include和lib的环境变量。
----解决:
3.1在环境变量里添加变量INCLUDE,包含进VC\Include和C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include(这个是安装vs时自动安装在C盘的)两个目录
INCLUDE=D:\Microsoft Visual Studio 9.0\VC\include; C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
3.2添加变量LIB,包含进VC\lib和C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib(这个也是安装vs时自动安装在C盘的)两个目录:
LIB=D:\Microsoft Visual Studio 9.0\VC\lib; C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
4.提示:fatal error LNK1104: 无法打开文件“kernel32.lib”,(在IDE里面运行没有问题,因为IDE中采用了另外的封装了库)
----原因:vs2008未设置include和lib的环境变量。
----解决:在环境变量里添加变量LIB,C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
或者将kernel32.lib直接到vc的lib目录下也可以
至此,问题终于解决了,hoho~o(∩_∩)o...
【Tips】
1.使用-GX选项时,2005的编译器会提示GX已过时,使用-EHsc代替
cl : Command line warning D9035 : option 'GX' has been deprecated and will be re
moved in a future release
cl : Command line warning D9036 : use 'EHsc' instead of 'GX'
2.环境变量可以通过“我的电脑右键->高级->环境变量”设置。当然也有其它方法,欲知详情请网络之。
【Ref】
http://blog.163.com/danshiming@126/blog/static/109412748201312703225352/(在命令行界面使用vs2005的cl )
http://hi..com/fymzone/blog/item/fdac1bfb9ba55f65034f5689.html(用vs2005编译器cl在控制台下编译)
http://hi..com/vanta/blog/item/f62035a80ec521b5cb130c3b.html(在cmd中键入cl执行编译时会出现mspdb80.dll无法找到的情况)