我正在尝试执行一个简单的SDL程序。我按照教程here中的说明进行操作。 程序使用C头(stdlib.h for printf())按预期构建和执行。但是当我尝试使用iostream(对于cout)时,它会引发错误。构建消息说"致命错误:iostream:没有这样的文件或目录"。
如何在SDL2中使用C ++功能?它甚至不允许我使用bool或类。当我使用C函数和数据类型时,程序执行得很好。
我有 Code :: Blocks 16.01 和 SDL 2.05 。
我是SDL的新手和所有这些东西,请不要粗鲁。我知道问题对你们来说可能听起来很愚蠢。我在这里搜索了解决方案,但没有找到与此相关的任何相关答案。如果SDL安装不正确,请指出正确的步骤。如果有人帮我解决这个问题,我将不胜感激!感谢。
抱歉英语不好,如果问题听起来不清楚,请发表评论。
P.S:这段代码对我来说是因为我注释掉了C ++部分。
#include<SDL.h>
#include<stdlib.h>
//#include<iostream>
//using namespace std;
const int screen_width=250;
const int screen_height=500;
int main(int argc,char* args[])
{
SDL_Window *window=NULL;
//SDL_Window is new data type. Always initialize pointer to NULL.
SDL_Surface* screenSurface=NULL;
//SDL_Surface is new data type. Surface is just a 2d image
//cant call any SDL function without initializing it before..
if(SDL_Init(SDL_INIT_VIDEO)<0)
{
}
//cout<<"SDL could not be initialized! Error:"<<SDL_GetError();
else
{
//creating a window
window=SDL_CreateWindow("SDL Tutorial",SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,screen_width,screen_height,SDL_WINDOW_SHOWN);
//just a error check again. make it habit to check for error always!!
if(window==NULL)
{
//cout<<"Sorry window could not be created!"<<SDL_GetError();
}
else
{
//get window surface. surface of window of type SDL_Window is returned to type of surface of SDL_Surface
screenSurface=SDL_GetWindowSurface(window);
//fill the surface
SDL_FillRect(screenSurface,NULL,SDL_MapRGB(screenSurface->format,0xFF,0xFF,0xFF));
//update the surface!, you always need to update surface !!
SDL_UpdateWindowSurface(window);
//wait for defined amount of time! time is in millisecs
SDL_Delay(2000);
//destroy window
SDL_DestroyWindow(window);
//quite SDl subsystems
SDL_Quit();
}
}
return 0;
}