当前位置:编程学习 > C#/ASP.NET >>

VC++2012编的程序F5运行没有问题,但是直接在debug目录下运行exe失败

VC++2012编的程序F5运行没有问题,但是直接在debug目录下运行exe失败.
错误如下:

Debug error!

   R6010
   -Abort() has been called!
   (please retry to debug the application) --------------------编程问答-------------------- 没代码。。。。。 --------------------编程问答--------------------
引用 1 楼 hdt 的回复:
没代码。。。。。


代码太多了,没办法贴啊。 --------------------编程问答-------------------- 主窗口界面没进来。开始怀疑是F5和单独执行工作目录不同导致,后来将工作目录设成debug目录,F5执行还是没问题。

引用 1 楼 hdt 的回复:
没代码。。。。。
--------------------编程问答--------------------
引用 1 楼 hdt 的回复:
没代码。。。。。


感觉是这个地方出错。
执行完自己写的OnOpenDocument函数,由于lpszPathName第一次不正确,直接return true.
BOOL CIntroDoc::OnOpenDocument(LPCTSTR lpszPathName) 
{
    LPTSTR lpszLast = (LPTSTR)_tcsrchr(lpszPathName, 'U');
    if((lpszLast != NULL) && strcmp(UMAT_CHANGE_HISTORY, lpszLast) == 0)
        return TRUE;    
     ……
}

之后进入系统的如下类,应该是运行到SetPathName挂的。
CDocument* CMultiDocTemplate::OpenDocumentFile(LPCTSTR lpszPathName, BOOL bAddToMRU, BOOL bMakeVisible)
{
……

if (lpszPathName == NULL)
{
…… }
else
{
// open an existing document
CWaitCursor wait;
if (!pDocument->OnOpenDocument(lpszPathName))
{
// user has be alerted to what failed in OnOpenDocument
TRACE(traceAppMsg, 0, "CDocument::OnOpenDocument returned FALSE.\n");
pFrame->DestroyWindow();
return NULL;
}
pDocument->SetPathName(lpszPathName, bAddToMRU); pDocument->OnDocumentEvent(CDocument::onAfterOpenDocument);
}

InitialUpdateFrame(pFrame, pDocument, bMakeVisible);
return pDocument;
} --------------------编程问答--------------------
引用 3 楼 godgogogo 的回复:
主窗口界面没进来。开始怀疑是F5和单独执行工作目录不同导致,后来将工作目录设成debug目录,F5执行还是没问题。

VS用F5調試時的程式的執行時的目錄好像是sln檔的目錄, 總之不同的, 你可以用GetCurrentDirectory看看
--------------------编程问答-------------------- 除 --------------------编程问答-------------------- 直接运行出错后,在任务管理器里面把转储文件,可以用WINDBG来调试一下就可以知道哪里出错了 --------------------编程问答-------------------- 是否在程序运行中读取当前路径下的配置文件?
若是这样的话,调试时是读取的上一级的目录的配置文件,而进入debug路径或release路径直接执行却是当前路径。
补充:.NET技术 ,  VC.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,