Но мой код создает эту проблему при запуске.
На самом деле две ошибки я исправил ошибку. Но ошибка 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
Примечание. Я ОТКЛЮЧИЛ ПРЕОБРАЗОВАННУЮ ГОЛОВКУ, ПОТОМУ ЧТО ПРЕДВАРИТЕЛЬНАЯ ОШИБКА ИЗГОТОВЛЕНИЯ