1.Ege源代码文件 9.cpp:
#include "graphics.h"
/*9.使用IMAGE类抓图、保存图片以及绘图*/
int main() {
PIMAGE img;//PIMAGE对象
initgraph(640,480);
setcolor(EGERGB(0xFF,0xFF,0x0));//边界色
setfillcolor(EGERGB(0xFF,0x0,0x80));//填充色
fillellipse(50,50,50,50);//填充圆
img = newimage();//newimgae是一块的
///从屏幕上截取(0, 0) - (80, 60)这部分作为img,这个img大小为80*60
//img的尺寸会重设,大小由第三第四个参数决定
//注意,(0,0)这点会被包含在img里,但(80, 60)不包含
getimage(img,0,0,80,60);
setfillcolor(EGERGB(0x0,0x70,0x00),img);//填充色
bar(40,20,70,50,img);//实心矩形
int x,y;
for(y=0;y<8;++y){
for(x=0;x<8;++x){
//把img整个,画在指定的坐标上,左上角对齐这个坐标。
//[x]8*80=640,[y]60*8=480
putimage(x*80,y*60,img);
}
}
ege::getch();
delimage(img);//删除对象img
closegraph();
return 0;
}
2.Makefile文件Makefile:
CC = gcc
CXX = g++
LINKER = g++
CppFiles = 9.cpp
Objs = 9.o
Executable = 9.exe
#.lib.a.o
Libs = -L"D:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -L"D:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -L"C:/SysLibrary/Ege/lib" -lgraphics64 -lgdi32 -limm32 -lmsimg32 -lole32 -loleaut32 -lwinmm -luuid -mwindows
#.h
IFlages = -I"D:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"D:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"D:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" -I"C:/SysLibrary/Ege/include"
###########################################
all:$(Executable)
$(Executable):$(Objs)
$(LINKER) $< $(Libs) -o $@
#下面的//符号作于Markdown,似乎除了一些小小的问题,可以忽略这句话
#//$(Objs):$(CXXCODES)
# $(CXX) -c $(CppFiles) $(IFlages) -o $@
#为什么这样也没有报错?
$(Objs):$(CppFiles)
$(CXX) -c $< $(IFlages) -o $@
clear:
rm $(Objs) $(Executable)
#话说,这rm $(Objs)好像完全没起作用...
3.代码执行结果:
4.总结回顾:
一个程序的诞生要经历**[编译]和[链接]**这两个最重要的阶段。
- 在(编译)的时候要: 加入头文件库路径(.h等文件)
- 在(链接)的时候要: 加入链接库文件路径(.lib, .o, .a等文件)以及链接参数(-xOOO)。
- Makefile中的依赖项似乎可以不用写的,直接加入中间就可以了。
[End:july 23,2017 (Sunday)]