当我运行下面的简单代码时,我有两个错误,如下所示:
#include <iostream>
#include <string>
using namespace::std;
template <class Type>
class Stack
{
public:
Stack (int max):stack(new Type[max]), top(-1), maxsize(max){}
~Stack (void) {delete []stack;}
void Push (Type &val);
void Pop (void) {if (top>=0) --top;}
Type& Top (void) {return stack[top];}
//friend ostream& operator<< (ostream&, Stack&);
private:
Type *stack;
int top;
const int maxSize;
};
template <class Type>
void Stack <Type>:: Push (Type &val)
{
if (top+1<maxsize)
stack [++top]=val;
}
错误:
msvcrtd.lib(crtexew.obj):错误LNK2019:函数___tMaincrtStartup
中引用了未解析的外部符号_WinMain@16
我该怎么办?
这是一个链接器问题。
尝试更改属性->链接器->系统->子系统(在Visual Studio中)。
从Windows(/subsystem:Windows)到控制台(/subsystem:Console)
这个帮了我
正如其他人提到的,您可以将子系统更改为控制台,错误就会消失。
或者,如果您想保留Windows子系统,您可以只提示您的入口点是什么,因为您还没有定义___tmaincrtstartup
。您可以通过将以下内容添加到Properties->Linker->命令行来完成此操作:
/entry:“maincrtstartup”
这样就可以摆脱控制台窗口。