使用 C++17 标准对"WinMain@16"的未定义引用



这是我的头文件

#include <iostream>
using namespace std;
 void DateCheck (const int &XX, const int &YY, const int &ZZZZ)
{
    if (XX>=01 && XX<=31 && (YY==1 || YY==3 ||YY==5 ||YY==7 ||YY==8 ||YY==10 
||YY==12))
    cout<<"DATE ACCECPTABLE";
else if (XX>=01 && XX<=30 && (YY==4 ||YY==6 ||YY==9 ||YY==11))
    cout<<"DATE ACCECPTABLE";
else if (XX>=01 && XX<=29 && (YY==2 && ZZZZ%4==0))
    cout<<"DATE ACCECPTABLE";
else if (XX>=01 && XX<=28 && (YY==2 && ZZZZ%4!=0))
    cout<<"DATE ACCECPTABLE";
else
    cout<<"INVALID DATE";
}

这是我C++代码狙击手

#include <iostream>
#include <cstdio>
#include <fstream>
#include <windows.h>
#include "DateCheck.h"
using namespace std;

class Admission
{
    struct AdminFormat
    {
        char Name[30], FName[30], MName[30], Gender[10];
        char BG[2],d;
        static unsigned int DD, MM, YYYY;
        char FOccu[20], MOccu[20], Religion[10];
        char OffAddr[100], ResAddr[100], PermAddr[100];
        float DistSch;
        unsigned int Contact, EmpCode;
        int caste, stucat, Class;  ///7cast
        char Nationality[20];
        AdminFormat *next;
    }*st;
    AdminFormat *F, *R;
public:
    Admission ()
    {
        F=R=NULL;
    }
    void NewStu ();  ///admission of new student
    void TransfStu ();   ///transfer
    void Register ();   ///displaying records of students
    void Store ();   ///storing all records in a binary file
};
void Admission::Register ()
{
    Admission ad;
    ifstream i;
    i.open("Register.dat", ios::app|ios::binary);
   while (i.read((char*)&ad, sizeof ad))
{
    cout<<"Hello";
}
i.close();
}

我被困在这里,因为我无法弄清楚为什么有一个错误显示对WinMain@16的未定义引用.如果你们可以调试我的问题,那将是非常好的。我使用Codeblocks IDE和gnu g++编译器制作了脚本。

任何C++程序(带有可执行输出)都需要一个main函数的起点,对于Windows GUI应用程序来说可能WinMain函数。所以无论哪种方式,你都需要有一个入口(开始)点到你的程序(没有起点你怎么能开始?

我在您的代码中找不到起点,并且您抱怨它的错误,因此这应该是您问题的根源。

在Windows下,GUI应用程序需要一个函数WinMain,而控制台应用程序需要一个函数main。否则操作系统将不知道从哪里开始执行程序(好吧,它比这复杂一些,但这就是你需要知道的全部。

更有用的错误消息是"程序需要入口点(WinMain 或 main)"。

最新更新