| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2583 人关注过本帖
标题:vc在vs中debug assertion failed疑问
取消只看楼主 加入收藏
serena1992
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2011-8-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
vc在vs中debug assertion failed疑问
我现有的程序是在vs下运行没有问题的,当我把debug目录下的.exe文件和它所用到的res还有dll文件放在同一个文件夹下面,点击.exe文件还是可以运行的,没有报错。可是当我在cmd下根据路径来运行这个可执行文件时,却出现了如下的警告对话框:
[local]1[/local]点击忽略后又可以继续运行,但这个影响了软件的性能,求知道的帮忙解释啊!!!谢谢啦!
搜索更多相关主题的帖子: 对话框 可执行文件 文件夹 软件 
2011-08-16 16:54
serena1992
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2011-8-5
收藏
得分:0 
回复 2楼 hahayezhe
额,对哦==
我把出现这个警告的过程说下:
在路径为d:/example1/SignalStrengthTest,如图所示:
图片附件: 游客没有浏览图片的权限,请 登录注册

然后在cmd下出现了:
图片附件: 游客没有浏览图片的权限,请 登录注册

点击忽略后:
图片附件: 游客没有浏览图片的权限,请 登录注册
(正常的)
点击确定后:
图片附件: 游客没有浏览图片的权限,请 登录注册

但是在上面对话框中所说的signalstrengthtest.cpp中,完全找不到60行和93行啊……
signalstrengthtest.cpp的代码如下:
#include "stdafx.h"
#include "SignalStrengthTest.h"
#include "SignalStrengthTestDlg.h"
#include "SkinMagicLib.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSignalStrengthTestApp

BEGIN_MESSAGE_MAP(CSignalStrengthTestApp, CWinApp)
    //{{AFX_MSG_MAP(CSignalStrengthTestApp)
        // NOTE - the ClassWizard will add and remove mapping macros here.
        //    DO NOT EDIT what you see in these blocks of generated code!
    //}}AFX_MSG
    ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSignalStrengthTestApp construction

CSignalStrengthTestApp::CSignalStrengthTestApp()
{
    // TODO: add construction code here,
    // Place all significant initialization in InitInstance
}


// The one and only CSignalStrengthTestApp object

CSignalStrengthTestApp theApp;


// CSignalStrengthTestApp initialization

//进行程序的初始化以及对话框界面的显示工作

BOOL CSignalStrengthTestApp::InitInstance()
{
    AfxEnableControlContainer();

    // Standard initialization
    // If you are not using these features and wish to reduce the size
    //  of your final executable, you should remove from the following
    //  the specific initialization routines you do not need.

#ifdef _AFXDLL
    Enable3dControls();            // Call this when using MFC in a shared DLL
#else
    Enable3dControlsStatic();    // Call this when linking to MFC statically
#endif
    VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));
    VERIFY(1 == LoadSkinFile(".\\res\\corona.smf"));
////////////////////////////////////////////////////////////////////////////////
    //for the command line;
   
    double a_max,a_min;

    LPWSTR *lpszArgv=NULL;
    int nArgs=0;
    lpszArgv = CommandLineToArgvW(GetCommandLineW(), &nArgs);//获取命令行参数并拆分命令行参数字符串

   
    CString str;
    a_max=atof(CString(lpszArgv[1]));
    str.Format("%f",a_max); //将变量组装到字符串中
    MessageBox(NULL,str,"消息框标题",MB_OK);


    //"d:/example1/SignalStrengthTest.exe" "-help"
    //LPWSTR *lpszArgv,则 lpszArgv[0] 就是 "E:/SoftWare/ProjCleaner.exe",lpszArgv[1] 就是 "-help"
////////////////////////////////////////////////////////////////////////////////
    CSignalStrengthTestDlg dlg;//新建主对话框类型对象;
    m_pMainWnd = &dlg;
    VERIFY(1 == SetWindowSkin(m_pMainWnd->m_hWnd, "MainFrame"));
    VERIFY(1 == SetDialogSkin("Dialog"));
    int nResponse = dlg.DoModal();//进行模态对话框的显示
    if (nResponse == IDOK)
    {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with OK
    }
    else if (nResponse == IDCANCEL)
    {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with Cancel
    }

    // Since the dialog has been closed, return FALSE so that we exit the
    //  application, rather than start the application's message pump.
    return FALSE;
}
2011-08-17 09:54
serena1992
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2011-8-5
收藏
得分:0 
点击上面第二个对话框的忽略后,SignalStrength.exe是可以运行起来的。
2011-08-17 09:57
serena1992
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2011-8-5
收藏
得分:0 
回复 5楼 hahayezhe
lpszArgv = CommandLineToArgvW(GetCommandLineW(), &nArgs);是获取值成功了的
图片附件: 游客没有浏览图片的权限,请 登录注册
如图所示,即为显示了lpszArgv[1]的值(前提是要在waring对话框下选择 忽略)
2011-08-17 13:44
serena1992
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2011-8-5
收藏
得分:0 
解决了
以下是引用zhoufeng1988在2011-8-17 13:52:10的发言:

     
VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));
VERIFY(1 == LoadSkinFile(".\\res\\corona.smf"));
 
第二条语句,用的是相对路径。
而你是在C:\Users\Puyadan下执行的,C:\Users\Puyadan下有res\corona.smf吗?
你再到D:\example下执行signalstrengthtest试试。
我试过了,确实是这个问题,只要将目录更改到d:\example下后再执行signalstrengthtest就没有错误了!
真的很感谢你们!!!
2011-08-17 14:24
快速回复:vc在vs中debug assertion failed疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040808 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved