zoukankan      html  css  js  c++  java
  • VC编译前先把当前应用杀掉

    在开发一个小程序,可是经常发现编译时,linking 的时候,那个程序还在,在windows下是不能直接换掉的.

    所以.

    一开始直接到

    project setting中的build event  中 setting 成

    taskilll /im pas.exe /f

    以为事情过来了

    可是,后来发现如果compile时没有进程可杀,上面的语句就会返回一个非零值(为了进一步证明,

    我到了command line中,在没有pas.exe进程的情况下,发现该命序的返回值是非零的也就是

    echo %errorlevel%

    相当于linux 下的

    echo $0

    由于返回的值非零,导致了visual studio 直接不往下走了.现在要想一个办法让这个命令的返回值不为0,

    看了一下

    taskkill /?

    发现好像也没有想要的结果

    而dos下的批处理来在再执行多一条语句,只要保证最后一条语句是成功的,那么返回值是否就一定为0呢?

    试了一下,

    taskkill /im pas.exe /f & dir
    
    echo %errorlevel%

    结果是128.....

    所以想要不要建立一个console的exe程序后,

    system("taskkill /im pas.exe /f");
    
    return 0;

    这样就可以保证返回值一定时0,

    可是想了一下能不能懒点,

    与现就打算把这些动作封在一个批处理里面算了.

    @rem just for win7 kill the pas.exe before linking
    taskkill /im pas.exe /f 1>null1.tmp 2>null2.tmp
    @rem two command just to generat the ret 0 so the vusial studio not to stop linking
    del /f /q null2.tmp
    del /f /q null1.tmp

    这样就可以了,其它后面本来一个delete 就可以了.但是不想在编译时看到过多关于这个动作的输出,(像杀掉哪个进程了或没有那个被杀的进程)之类,

    于是就重定向了,

    但是问题就接着来了,

    如果

    taskkill /im pas.exe /f 1>null 2>null

    那样,会报打开文件失败,可能是由于重定向时多个一起会出问题,于是我就分开来写,,,,

    把错误正确的分开两个文件,

    之后就变成上面的有点累赘的格式了.

  • 相关阅读:
    实用Javascript调试技巧
    fetch的常见问题及其解决办法
    为什么重复的GET请求变慢了?
    JavaScript深入浅出第4课:V8引擎是如何工作的?
    一步一步搭建前端监控系统:如何定位前端线上问题?
    如何使用 Set 来提高JS代码的性能
    详解Vue的slot新用法
    详解Vue响应式原理
    BeautyWe.js 一套专注于微信小程序的开发范式
    await Task.Yield()和await Task.CompletedTask有什么不同
  • 原文地址:https://www.cnblogs.com/vimmer/p/3037278.html
Copyright © 2011-2022 走看看