gpt4 book ai didi

c++ - 未解析的外部符号 - 仅在 Release模式下

转载 作者:搜寻专家 更新时间:2023-10-31 01:16:48 24 4
gpt4 key购买 nike

我使用的是 Visual C++ 6,我的应用程序在 Debug模式下构建和运行良好,但在尝试在 Release模式下构建时出现以下两个未解析的外部符号错误:

OverUnderReportDoc.obj : error LNK2001: unresolved external symbol "public: virtual int     __thiscall COverUnderReportDoc::GenerateReport(void)" (? GenerateReport@COverUnderReportDoc@@UAEHXZ)

OverUnderReportDoc.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall COverUnderReportDoc::DoReport(void)" (?DoReport@COverUnderReportDoc@@UAE_NXZ)

COverUnderReportDoc是CReportDoc的派生类,CReportDoc派生自CDocument,是MFC框架的一部分。

函数声明如下:

public:

virtual int GenerateReport(void);
virtual bool DoReport(void);

和定义:

bool COverUnderReportDoc::DoReport(void)
{

// Instantiate the dialog
CCriteriaDlg dlg;
m_Report.BreakSpace(FALSE);

// Get a pointer to the window
CWnd* pWnd = AfxGetApp()->m_pMainWnd;

// When OK is clicked...
if (dlg.DoModal() == IDOK)
{
// Set the document title
SetTitle("Inventory Over/Under");

// Copy some values from the dialog to member variables

GenerateReport();

pWnd->ShowWindow(SW_MAXIMIZE);

}
else
{
// If Cancel is clicked, close the program
if(pWnd)
pWnd->PostMessage(WM_CLOSE);
return false;
}

return true;
}

int COverUnderReportDoc::GenerateReport(void)
{

// write the headers to the report
// if there was no problem
if (DoHeaders())
{
// assemble the report data
// if that went well
if (ScanFile())
// write the summary to the report
DoSummary();
}
// return the document status
return m_nStatus;
}

我真的不确定如何解决这个问题,这些方法不在任何库中,而且该类编译得很好,所以我不知道为什么在链接时看不到它们。有人有什么想法吗?

编辑:这是我的项目选项:

发布项目选项:

(项目设置C/C++标签)

/nologo /Zp1 /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D   "_MBCS" /D "BTI_WIN_32" /FR"Release/" /Fo"Release/" /Fd"Release/" /FD /c 

(项目设置链接标签)

MYLIB.lib w3btrv7.lib VERSION.LIB /nologo /subsystem:windows /incremental:no /pdb:"Release/OverUnderReport.pdb" /machine:I386 /out:"Release/OverUnderReport.exe" 

调试项目选项:

(项目设置C/C++标签)

/nologo /Zp1 /MDd /W3 /GX /ZI /Ot /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "BTI_WIN_32" /FR"Debug/" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c

(项目设置链接标签)

VERSION.LIB MYLIB.lib w3btrv7.lib /nologo /subsystem:windows /profile /debug /machine:I386 /out:"Debug/OverUnderReport.exe" 

最佳答案

pastebin.com/e1E0WcBT 上的第 102 行:

#ifdef _DEBUG

导致在 Release模式下构建时从该点开始跳过所有成员函数的定义。

关于c++ - 未解析的外部符号 - 仅在 Release模式下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8763627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com