While I am running the simple code as below I have two errors as following:
#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;
}
Errors:
MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol
_WinMain@16
referenced in function___tmainCRTStartup
What Should I do?
If you are using CMake, you can also get this error when you set
SET(GUI_TYPE WIN32)
on a console application.If you are having this problem and are using Qt - you need to link qtmain.lib or qtmaind.lib
Your tried to turn that source file into an executable, which obviously isn't possible, because the mandatory entry point, the
main
function, isn't defined. Add a file main.cpp and define a main function. If you're working on the commandline (which I doubt), you can add/c
to only compile and not link. This will produce an object file only, which needs to be linked into either a static or shared lib or an application (in which case you'll need an oject file with main defined)._WinMain
is Microsoft's name formain
when linking.Also: you're not running the code yet, you are compiling (and linking) it. C++ is not an interpreted language.
Include
<tchar.h>
which has the line:i don't see the main function.
please make sure that it has main function.
example :
hope that it works well. :)
If your project is Dll, then the case might be that linker wants to build a console program. Open the project properties. Select the General settings. Select configuration type Dynamic Library there(.dll).