C ++ Visual Studio Фатальная ошибка C1002 с Glut - PullRequest
1 голос
/ 05 октября 2019

Но мой код создает эту проблему при запуске.

На самом деле две ошибки я исправил ошибку. Но ошибка C1002 по-прежнему остается.

То, что я пытался: я пытаюсь разделить мой код, рекомендованный на сайте Microsoft. Я не пытаюсь использовать более мелкие выражения, потому что не знаю, как их уменьшить. https://docs.microsoft.com/en-us/cpp/error-messages/compiler-errors-1/fatal-error-c1002?view=vs-2019

Я использовал / Zm2000 для увеличения кучи памяти, даже не помог и не исправляет ошибку.

Как я могу это исправить.

 #include "glut.h"
    #include "MetroFusion.h"

int EGrassMap[24530][25630] = { //our fur map
    {1,1,1,1},
    {1,1,1,1},
    {1,1,1,1},
    {1,1,1,1},
    {1,1,1,1}
};


void fur_obj(float xe,float ye,float ze,float heightc) {
    glTranslatef(xe, ye, ze);
    glBegin(GL_LINES);
    glColor3f(0.498, 1.000, 0.000);
    glVertex3f(0, 0, 0);
    glColor3f(0.000, 1.000, 0.498);
    glVertex3f(0, heightc, 0);
    glEnd();
}
void grass(float x,float y,float z,float height,int grassmap[24530][25630]) {
    int animate;
    for (int i = 0; i < 10; i++)
    {
        for (int j = 1; j < 10; j++)
        {
            if (grassmap[i][j] == 1) {
                glPushMatrix();
                glRotatef(animate, animate, 0, 0);

            fur_obj(-j,i,0,height);
            glPopMatrix();
            }else {

                glPushMatrix();
                glPopMatrix();
            }
        }
    }

    if (animate > 160.0) {
        animate = 140;

    }
    if (animate < 150.0) {
        animate += 0.1;
    }


}

Metro Fusion. h:

#pragma once
#ifdef IEDXMetroFusion
#define IEDXMetroFusion_API__declspec(dllexport)
#else
#define IEDXMetroFusion_API __declspec(dllimport)
#endif
extern "C" IEDXMetroFusion_API int EGrassMap[24530][25630];
extern "C" IEDXMetroFusion_API void fur_obj(float xe, float ye, float ze, float heightc);
extern "C" IEDXMetroFusion_API  void grass(float x, float y, float z, float height, int grassmap[24530][25630]);
extern "C" IEDXMetroFusion_API int animate;

Выход компилятора: 1> ------ Derleme başladı: Proje: IEDX.MetroFusion, Yapılandırma: Выпуск Win32 ------ 1> dllmain.cpp 1> IEDX. MetroFusion.cpp 1> c: \ users \ casper \ documents \ visual studio 2017 \ projects \ iedx.metrofusion \ iedx.metrofusion \ iedx.metrofusion.cpp (6): предупреждение C4273: 'EGrassMap': tutarsız dll bağlaması 1> c: \ users \ casper \ documents \ visual studio 2017 \ projects \ iedx.metrofusion \ iedx.metrofusion \ metrofusion.h (7): примечание: önceki 'EGrassMap' tanımına bakın 1> c: \ users \ casper \ Documents \ visual studio2017 \ projects \ iedx.metrofusion \ iedx.metrofusion \ iedx.metrofusion.cpp (15): предупреждение C4273: 'fur_obj': tutarsız dll bağlaması 1> c: \ users \ casper \ Documents \ visual studio 2017 \ projects \ iedx. metrofusion \ iedx.metrofusion \ metrofusion.h (8): примечание: önceki 'fur_obj' tanımına bakın 1> c: \ users \ casper \ documents \visual studio 2017 \ projects \ iedx.metrofusion \ iedx.metrofusion \ iedx.metrofusion.cpp (24): предупреждение C4273: «трава»: tutarsız dll bağlaması 1> c: \ users \ casper \ Documents \ visual studio 2017 \ projects \iedx.metrofusion \ iedx.metrofusion \ metrofusion.h (9): примечание: önceki 'grass' tanımına bakın 1> Kod Üretiliyor ... 1> C: \ Users \ casper \ Documents \ Visual Studio 2017 \ Projects \ IEDX.MetroFusion\ IEDX.MetroFusion \ IEDX.MetroFusion.cpp: фатальная ошибка C1002: 2. полный дерлицицид yığın tükendi 1> «IEDX.MetroFusion.vcxproj» projesini oluşturma tamamlandı - BAŞARISIZ OLDU. ========== Oluşturma: 0 başarılı, 1 başarısız, 0 güncel, 0 atlandı ==========

бит вывода компилятора грязный, потому что я использую турецкую версиюvisual studio

Примечание. Я ОТКЛЮЧИЛ ПРЕОБРАЗОВАННУЮ ГОЛОВКУ, ПОТОМУ ЧТО ПРЕДВАРИТЕЛЬНАЯ ОШИБКА ИЗГОТОВЛЕНИЯ

...