错误 LNK2001:未解析的外部符号"class ATL::CTraceCategory ATL::atlTraceException" (?atlTraceException@ATL@@3VCTr
error LNK2001: unresolved external symbol "class ATL::CTraceCategory ATL::atlTraceException" (?atlTraceException@ATL@@3VCTraceCategory@1@A)
本文关键字:ATL CTraceCategory class atlTraceException@ATL@@3VCTr atlTraceException 符号 LNK2001 外部 错误 更新时间:2023-10-16
我正在尝试在Visual Studio 2013上运行该程序,但是当我包含一个对象 - myparser.obj时,我收到以下错误:
1>MyParser.obj : error LNK2001: unresolved external symbol "class ATL::CTraceCategory ATL::atlTraceException" (?atlTraceException@ATL@@3VCTraceCategory@1@A)
1>MyParser.obj : error LNK2001: unresolved external symbol "public: static class ATL::CTrace ATL::CTrace::s_trace" (?s_trace@CTrace@ATL@@2V12@A)
1>MyParser.obj : error LNK2019: unresolved external symbol _AtlTraceVA referenced in function "public: void __cdecl ATL::CTrace::TraceV(char const *,int,unsigned long,unsigned int,char const *,char *)const " (?TraceV@CTrace@ATL@@QBAXPBDHKI0PAD@Z)
是 myparser 有问题还是其他问题?
代码4A.h
#include <afxwin.h>
#define IDC_BUTTON 501
#define nInput 6
extern double parse(CString,int,double [],int []);
class CCode4A : public CFrameWnd
{
protected:
typedef struct
{
CString label,item;
CPoint hm;
CEdit ed;
CRect rc,display;
} INPUT;
INPUT input[nInput+1];
CStatic result;
CFont Arial80;
CButton btn;
int idc;
public:
CCode4A();
~CCode4A();
afx_msg void OnPaint(),OnButton();
DECLARE_MESSAGE_MAP()
};
class CMyWinApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
代码4A.cpp
#include "Code4A.h"
CMyWinApp MyApplication;
BOOL CMyWinApp::InitInstance()
{
CCode4A* pFrame = new CCode4A;
m_pMainWnd = pFrame;
pFrame->ShowWindow(SW_SHOW);
pFrame->UpdateWindow();
return TRUE;
}
BEGIN_MESSAGE_MAP(CCode4A,CFrameWnd)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_BUTTON,OnButton)
END_MESSAGE_MAP()
CCode4A::CCode4A()
{
Create(NULL,"Code4A: Scientific Calculator",
WS_OVERLAPPEDWINDOW,CRect(0,0,700,350),NULL);
Arial80.CreatePointFont(80,"Arial");
idc=301;
input[0].hm=CPoint(200,20);
for (int i=1;i<=nInput;i++)
input[i].hm=CPoint(input[0].hm.x+10,input[0].hm.y+50+(i-1)*30);
input[1].label="t";
input[2].label="u";
input[3].label="v";
input[4].label="x";
input[5].label="y";
input[6].label="Expression";
btn.Create("Compute",WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON,
CRect(CPoint(input[0].hm.x,input[0].hm.y+5),CSize(100,20)),
this,IDC_BUTTON);
for (i=1;i<=nInput-1;i++)
input[i].ed.Create(WS_CHILD | WS_VISIBLE | WS_BORDER,
CRect(input[i].hm.x+70,input[i].hm.y,input[i].hm.x+150,
input[i].hm.y+20),this,idc++);
input[nInput].ed.Create(WS_CHILD | WS_VISIBLE | WS_BORDER,
CRect(input[nInput].hm.x+70,input[nInput].hm.y,
input[nInput].hm.x+350,input[nInput].hm.y+20),this,idc++);
result.Create("",WS_CHILD | WS_VISIBLE | SS_CENTER | WS_BORDER,
CRect(input[nInput].hm.x+50,input[nInput].hm.y+50,
input[6].hm.x+150,input[6].hm.y+70),this,idc++);
}
CCode4A::~CCode4A()
{
}
void CCode4A::OnPaint()
{
CPaintDC dc(this);
CString str;
dc.SelectObject(Arial80);
dc.SetBkColor(RGB(255,255,255));
dc.SetTextColor(RGB(100,100,100));
for (int i=1;i<=nInput;i++)
dc.TextOut(input[i].hm.x,input[i].hm.y,input[i].label);
dc.TextOut(input[6].hm.x,input[6].hm.y+50,"Result");
}
void CCode4A::OnButton()
{
CString str;
int i,psi[nInput+1];
double z,psv[nInput+1];
for (i=1;i<=nInput;i++)
input[i].ed.GetWindowText(input[i].item);
psi[1]=19;
psi[2]=20;
psi[3]=21;
psi[4]=23;
psi[5]=24;
for (i=1;i<=nInput;i++)
psv[i]=atof(input[i].item);
z=parse(input[nInput].item,5,psv,psi);
str.Format("%lf",z);
result.SetWindowText(str);
}
检查您的项目设置,您缺少 atls.lib 的链接器输入。
将项目设置为/NODEFAULTLIB 并将其显式链接到 atls.lib
/NODEFAULTLIB
include "atlbase.h"
应该解决问题
相关文章:
- ATL::CComContainedObject<contained>: C2259 无法实例化抽象类
- ATL OLE DB Consumer Templates 与 Microsoft OLE DB Driver for
- 在Visual Studio 2017上使用VC++ 2015工具链时缺少ATL标头
- C++ ATL | 找不到_InternalQueryInterface标识符
- 迁移到 Visual Studio 2015 时 ATL 不起作用
- COM 事件需要 C3702 atl
- ATL COM - EnumWindows 回调函数不适用于 IDispatch::Invoke
- C++COM ATL VariantChangeType 会导致 WSH 崩溃
- WinAPI - GetLastError 在通过 COM ATL DLL 调用时始终返回 0
- MFC/DLL中缺少ATL :: CSTRINGT功能,该功能与Clang/vs-2019构建
- 如何使用 ATL/MSOLEDBSQL 启用连接资源池
- 如何将atl :: cimage转换为cv :: mat
- 错误 C4839:非标准地使用类 'ATL::CW2AEX<520>' 作为可变参数函数的参数
- 如何在ATL项目中使用ActiveX DLL
- 我有一个启用了代理存根支持的 ATL 项目,在哪里可以找到 xdlldata.h 文件中所有方法的实现
- 如何在 ATL COM 模块中打印控制台输出
- 将文本日期和时间转换为 ATL::CTime
- MFC vs ATL for ActiveX
- 带有ATL子类的Windows 10 64位上的随机崩溃
- 错误 LNK2001:未解析的外部符号"class ATL::CTraceCategory ATL::atlTraceException" (?atlTraceException@ATL@@3VCTr