(1)断点可以设置他的值(2)通过#define如下面#ifdef _DEBUG
#define new DEBUG_NEW
#endif

解决方案 »

  1.   

    int sleeptime = 5000;

    #ifdef _DEBUG
    sleeptime = 500;
    #endif _DEBUG
    我想让sleeptime 在调试的时候是500,直接运行是5000,为什么直接运行生成的exe程序sleeptime还是500?这个sleeptime 实际上就是程序启动画面显示的时间
      

  2.   

    怎么写?是向注册表写入吗?因为我想到PhotoShop启动的时候会在启动时读取一些配置信息。那具体如何实现呢?
      

  3.   

    你说的直接运行,还是DEBUG版本?直接运行你编译成release版本
      

  4.   

    我切换到release,然后F5调试,结果还是500
      

  5.   

    在mfc里可以用命令行参数吗?有的话请具体下代码
      

  6.   

    vs2013按F5是调试,按CTRL+F5是开始执行(不调试),我说的直接执行就是这个引用:
     Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 
         Debug 和 Release 的真正区别,在于一组编译选项。也就是说在编译的时候  Debug 和 Release版本就有所区别了,那么不论是调试,还是开始执行(不调试),两种版本的区别都会反映出来,对吗?那为什么我6楼的代码没有效果呢,2种版本下sleeptime都是500?另外,直接双击运行生成的exe程序,或者运行由exe程序创建的快捷方式,此时是以什么方式运行?
      

  7.   

    怎么写?是向注册表写入吗?因为我想到PhotoShop启动的时候会在启动时读取一些配置信息。那具体如何实现呢?
    写注册表也行,但是写注册表你改参数的时候比较麻烦,而且拷贝到其他电脑的时候可能需要重新设置你的参数值。
    你可以在你的可执行文件目录下生成一个config.ini文件格式如下
    [配置1]
    参数1=5000
    [配置2]
    参数2=20131100
    参数3=20131100
    Par = ::GetPrivateProfileInt("配置1", "参数1", 0, ".\\config.ini");获取参数1的值,当你不需要调试时将该值改为正常需要的值。
    需要程序改值得话::WritePrivateProfileString("配置1", "参数1", "3306",  ".\\config.ini");
    另外获取字符处GetPrivateProfileString("配置1", "参数1", NULL, IPAddress, 1024, ".\\config.ini");
    其他你可以查一下msdn
      

  8.   

    在mfc里可以用命令行参数吗?有的话请具体下代码在命令行中执行程序 "C:\test\app.exe" -1 -2
     方法一
      ::GetCommandLine();
      将获取到 "C:\test\app.exe" -1 -2  方法二
      for (int i=0;i<__argc;i++)
      {
      __argv[i];
      将依次得到C:\test\app.exe -1 -2
      }  方法三
      AfxGetApp()->m_lpCmdLine;
      将获取到 -1 -2  其他方法
      如果希望支持MFC应用程序的标准命令行,还可以使用MFC中的CCommandLineInfo类。
    希望对你有帮助
      

  9.   

    我没说清楚,执行是直接执行,不调试,所以不存在断点一说int sleeptime = 5000;
         
    #ifdef _DEBUG
        sleeptime = 500;       
    #endif _DEBUG你这样写会报错的,要像下面那样写:
    #ifdef _DEBUG
    #define DataValue  500   
    #else
    #define DataValue 1000
    #endif _DEBUG用的时候,如:
    int n = DataValue;这样的话,在debug就会变成500,在Release会变成1000
      

  10.   

    我没说清楚,执行是直接执行,不调试,所以不存在断点一说int sleeptime = 5000;
         
    #ifdef _DEBUG
        sleeptime = 500;       
    #endif _DEBUG你这样写会报错的,要像下面那样写:
    #ifdef _DEBUG
    #define DataValue  500   
    #else
    #define DataValue 1000
    #endif _DEBUG用的时候,如:
    int n = DataValue;这样的话,在debug就会变成500,在Release会变成1000刚刚又试了一下,2种方法都可以的
      

  11.   

    在mfc里可以用命令行参数吗?有的话请具体下代码在命令行中执行程序 "C:\test\app.exe" -1 -2
     方法一
      ::GetCommandLine();
      将获取到 "C:\test\app.exe" -1 -2  方法二
      for (int i=0;i<__argc;i++)
      {
      __argv[i];
      将依次得到C:\test\app.exe -1 -2
      }  方法三
      AfxGetApp()->m_lpCmdLine;
      将获取到 -1 -2  其他方法
      如果希望支持MFC应用程序的标准命令行,还可以使用MFC中的CCommandLineInfo类。
    希望对你有帮助
    使用命令行的话,在哪里传入参数呢?
      

  12.   

    在命令行下执行程序,开始-运行-输入cmd确定。在弹出的控制台中输入程序完整路径 后面携带参数
      

  13.   

    就应该用宏切换,最通用的方法!
    #ifdef _DEBUG
    #define DataValue  500   
    #else
    #define DataValue  100   
    #endif // _DEBUG
      

  14.   

    GetCurrentDirectory()调试时当前路径和直接运行时的当前路径是不一样的!你可以用这个方法来判断是调试运行的,还是直接双击运行的!
      

  15.   

    不一样啊?不都是Debug下的.EXE吗