视点变换,旋转,加速减速,星空背景太阳,光晕各行星纹理#include#include#include#include#include#include#include#pragmacomment(lib,"winmm.lib")#pragmacomment(lib,"wininet")//纹理图像结构typedefstruct{intimgWidth;//纹理宽度intimgHeight;//纹理高度unsignedcharbyteCount;//每个象素对应的字节数,3:24位图,4:带alpha通道的24位图unsignedchar*data;//纹理数据}TEXTUREIMAGE;//BMP文件头#pragmapack(2)typedefstruct{unsignedshortbfType;//文件类型unsignedlongbfSize;//文件大小unsignedshortbfReserved1;//保留位unsignedshortbfReserved2;//保留位unsignedlongbfOffBits;//数据偏移位置}BMPFILEHEADER;#pragmapack()//BMP信息头typedefstruct{unsignedlongbiSize;//此结构大小longbiWidth;//图像宽度longbiHeight;//图像高度unsignedshortbiPlanes;//调色板数量unsignedshortbiBitCount;//每个象素对应的位数,24:24位图,32:带alpha通道的24位图unsignedlongbiCompression;//压缩unsignedlongbiSizeImage;//图像大小longbiXPelsPerMeter;//横向分辨率longbiYPelsPerMeter;//纵向分辨率unsignedlongbiClrUsed;//颜色使用数unsignedlongbiClrImportant;//重要颜色数}BMPINFOHEADER;//定义窗口的标题、宽度、高度、全屏布尔变量#defineWIN_TITLE"模拟太阳系各星球的转动"constintWIN_WIDTH=800;constintWIN_HEIGHT=600;BOOLisFullScreen=FALSE;//初始不为全屏#defineDEG_TO_RAD0.017453floatangle=0.0;staticGLdoubleviewer[]={0,0,0,0,0};//初始化视角GLUquadricObj*quadric;//建立二次曲面对象GLfloatangle_Z;//星空旋转角度boolg_bOrbitOn=true;//控制转动暂停floatg_fSpeedmodifier=1.0f;//时间控制floatg_fElpasedTime;doubleg_dCurrentTime;doubleg_dLastTime;GLfloatLightAmbient[]={1.0f,1.0f,1.0f,0.0f};//环境光参数GLfloatLightDiffuse[]={1.0f,1.0f,1.0f,0.0f};//漫射光参数GLfloatLightPosition[]={0.0f,0.0f,0.0f,1.0f};//光源的位置//纹理图象TEXTUREIMAGEskyImg;TEXTUREIMAGEsunImg;TEXTUREIMAGErayImg;TEXTUREIMAGEmercuImg;TEXTUREIMAGEvenusImg;TEXTUREIMAGEearthImg;TEXTUREIMAGEmarsImg;TEXTUREIMAGEjupiterImg;TEXTUREIMAGEsaturnImg;TEXTUREIMAGEuranusImg;TEXTUREIMAGEneptuneImg;TEXTUREIMAGEmoonImg;GLuinttexture[12];//纹理数组//星球速度定义staticfloatfSunSpin=0.0f;//太阳自转速度staticfloatfMercuSpin=0.0f;//水星自转速度staticfloatfMercuOrbit=0.0f;//水星公转速度staticfloatfVenusSpin=0.0f;//金星自转速度staticfloatfVenusOrbit=0.0f;//金星公转速度staticfloatfEarthSpin=0.0f;//地球自转速度staticfloatfEarthOrbit=0.0f;//地球公转速度staticfloatfMarsSpin=0.0f;//火星自转速度staticfloatfMarsOrbit=0.0f;//火星公转速度staticfloatfJupiterSpin=0.0f;//木星自转速度staticfloatfJupiterOrbit=0.0f;//木星公转速度staticfloatfSaturnSpin=0.0f;//土星自转速度staticfloatfSaturnOrbit=0.0f;//土星公转速度staticfloatfUranusSpin=0.0f;//天王星自转速度staticfloatfUranusOrbit=0.0f;//天王星公转速度staticfloatfNeptuneSpin=0.0f;//海王星自转速度staticfloatfNeptuneOrbit=0.0f;//海王星公转速度staticfloatfMoonSpin=0.0f;//月亮自转速度staticfloatfMoonOrbit=0.0f;//月亮公转速度voidMakeTexture(TEXTUREIMAGEtextureImg,GLuint*texName)//转换为纹理{glPixelStorei(GL_UNPACK_ALIGNMENT,1);//对齐像素字节函数glGenTextures(1,texName);//第一个参数指定表明获取多少个连续的纹理标识符glBindTexture(GL_TEXTURE_2D,*texName);glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_REPEAT);glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_REPEAT);glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,textureImg.imgWidth,textureImg.imgHeight,0,GL_RGB,GL_UNSIGNED_BYTE,textureImg.data);}//初始化OpenGLvoidInitGL(void){glClearColor(0.0f,0.0f,0.0f,0.5f);//设置黑色背景glClearDepth(2.0f);//设置深度缓存glEnable(GL_DEPTH_TEST);//启动深度测试glDepthFunc(GL_LEQUAL);//深度小或相等的时候渲染glShadeModel(GL_SMOOTH);//启动阴影平滑glEnable(GL_CULL_FACE);//开启剔除操作效果glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);//使用质量最好的模式指定颜色和纹理坐标的插值质量glLightfv(GL_LIGHT1,GL_AMBIENT,LightAmbient);//设置环境光glLightfv(GL_LIGHT1,GL_DIFFUSE,LightDiffuse);//设置漫反射光glEnable(GL_LIGHTING);//打开光照glEnable(GL_LIGHT1);//打开光源1//载入纹理glEnable(GL_TEXTURE_2D);//开启2D纹理映射MakeTexture(skyImg,&texture;[0]);MakeTexture(sunImg,&texture;[1]);MakeTexture(rayImg,&texture;[2]);MakeTexture(mercuImg,&texture;[3]);MakeTexture(venusImg,&texture;[4]);MakeTexture(earthImg,&texture;[5]);MakeTexture(marsImg,&texture;[6]);MakeTexture(jupiterImg,&texture;[7]);MakeTexture(saturnImg,&texture;[8]);MakeTexture(uranusImg,&texture;[9]);MakeTexture(neptuneImg,&texture;[10]);MakeTexture(moonImg,&texture;[11]);quadric=gluNewQuadric();//建立一个曲面对象指针gluQuadricTexture(quadric,GLU_TRUE);//建立纹理坐标gluQuadricDrawStyle(quadric,GLU_FILL);//面填充}voidDisplay(void){glLoadIdentity();//设置观察点的位置和观察的方向gluLookAt(viewer[0],viewer[1],viewer[2],viewer[3],viewer[4],-5,0,1,0);//摄像机x,摄像机y,摄像机z,目标点x,目标点y,目标点z,摄像机顶朝向x,摄像机顶朝向y,摄像机顶朝向z//获得系统时间使太阳系有动态效果g_dCurrentTime=timeGetTime();g_fElpasedTime=(float)((g_dCurrentTime-g_dLastTime)*0.0005);g_dLastTime=g_dCurrentTime;glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glMatrixMode(GL_MODELVIEW);//指定GL_MODELVIEW是下一个矩阵操作的目标glTranslatef(0.0f,0.0f,-5.0f);//将坐标系移入屏幕5.0fglRotatef(10,1.0f,0.0f,0.0f);//将坐标系绕x轴旋转10度glEnable(GL_LIGHT0);//打开光源0/**********************************绘制背景星空********************************************/glPushMatrix();//当前模型矩阵入栈glTranslatef(-10.0f,3.0f,0.0f);glRotatef(angle_Z,0.0f,0.0f,1.0f);glEnable(GL_TEXTURE_2D);glBindTexture(GL_TEXTURE_2D,texture[0]);//星空纹理glBegin(GL_QUADS);glNormal3f(0.0f,0.0f,1.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(-50.0f,-50.0f,-50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(50.0f,-50.0f,-50.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(50.0f,50.0f,-50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(-50.0f,50.0f,-50.0f);glEnd();glBegin(GL_QUADS);glNormal3f(0.0f,0.0f,-1.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(-50.0f,-50.0f,50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(50.0f,-50.0f,50.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(50.0f,50.0f,50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(-50.0f,50.0f,50.0f);glEnd();glBegin(GL_QUADS);glNormal3f(0.0f,1.0f,0.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(-50.0f,-50.0f,-50.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(50.0f,-50.0f,50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(50.0f,-50.0f,-50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(-50.0f,-50.0f,50.0f);glEnd();glBegin(GL_QUADS);glNormal3f(0.0f,-1.0f,0.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(-50.0f,50.0f,-50.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(50.0f,50.0f,50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(50.0f,50.0f,-50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(-50.0f,50.0f,50.0f);glEnd();glBegin(GL_QUADS);glNormal3f(1.0f,0.0f,0.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(-50.0f,-50.0f,-50.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(-50.0f,50.0f,50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(-50.0f,-50.0f,50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(-50.0f,50.0f,-50.0f);glEnd();glBegin(GL_QUADS);glNormal3f(-1.0f,0.0f,0.0f);glTexCoord2f(6.0f,6.0f);glVertex3f(50.0f,-50.0f,-50.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(50.0f,50.0f,50.0f);glTexCoord2f(6.0f,0.0f);glVertex3f(50.0f,-50.0f,50.0f);glTexCoord2f(0.0f,6.0f);glVertex3f(50.0f,50.0f,-50.0f);glEnd();glPopMatrix();//当前模型矩阵出栈/**********************************绘制太阳************************************************/glBindTexture(GL_TEXTURE_2D,texture[2]);//光晕纹理glEnable(GL_BLEND);//开启混合glDisable(GL_DEPTH_TEST);//关闭深度测试//绘制太阳光晕glDisable(GL_LIGHTING);//关闭光照glBlendFunc(GL_SRC_ALPHA,GL_ONE);//半透明混合函数glColor4f(1.0f,0.5f,0.0f,0.5f);//设置RGBA值glBegin(GL_QUADS);glNormal3f(0.0f,0.0f,1.0f);glTexCoord2f(0.0f,0.0f);glVertex3f(-1.0f,-1.0f,0.0f);glTexCoord2f(1.0f,0.0f);glVertex3f(1.0f,-1.0f,0.0f);glTexCoord2f(1.0f,1.0f);glVertex3f(1.0f,1.0f,0.0f);glTexCoord2f(0.0f,1.0f);glVertex3f(-1.0f,1.0f,0.0f);glEnd();glDisable(GL_BLEND);//关闭混合glEnable(GL_DEPTH_TEST);glEnable(GL_LIGHTING);//开启光照glLightfv(GL_LIGHT1,GL_POSITION,LightPosition);//设置光源1位置glBindTexture(GL_TEXTURE_2D,texture[1]);//太阳纹理//将坐标系绕Y轴旋转fSunSpin角度,控制太阳自转glRotatef(fSunSpin,0.0,1.0,0.0);gluSphere(quadric,0.3f,32,32);//绘制太阳球体/**********************************绘制水星************************************************/glDisable(GL_LIGHT0);glEnable(GL_TEXTURE_2D);//开启纹理glPushMatrix();//当前模型视图矩阵入栈//将坐标系绕Y轴旋转fMercuOrbit角度,控制水星公转glRotatef(fMercuOrbit,0.0f,1.0f,0.0f);glRotatef(-90.0f,1.0f,0.0f,0.0f);//将坐标系绕X轴旋转-90度glTranslatef(0.5f,0.0f,0.0f);//将坐标系右移0.5fglBindTexture(GL_TEXTURE_2D,texture[3]);//水星纹理//将坐标系绕Z轴旋转fMercuSpin角度控制水星自转glRotatef(fMercuSpin,0.0f,0.0f,1.0f);gluSphere(quadric,0.04f,32,32);//水星球体glPopMatrix();//当前模型视图矩阵出栈//绘制轨道glBegin(GL_LINE_LOOP);for(angle=0;angle=-6.0)viewer[0]-=0.5;break;case'u':case'U':if(viewer[1]=-6.0)viewer[1]-=0.1;break;case'+':case'='://加速,减速,暂停g_fSpeedmodifier+=1.0f;glutPostRedisplay();break;case'':g_bOrbitOn=!g_bOrbitOn;glutPostRedisplay();break;case'-'://按'-'减小运行速度g_fSpeedmodifier-=1.0f;glutPostRedisplay();break;caseVK_ESCAPE://按ESC键时退出exit(0);break;default:break;}}voidspecial_keys(ints_keys,intx,inty){switch(s_keys){caseGLUT_KEY_F1://按F1键时切换窗口/全屏模式if(isFullScreen){glutReshapeWindow(WIN_WIDTH,WIN_HEIGHT);glutPositionWindow(30,30);isFullScreen=FALSE;}else{glutFullScreen();isFullScreen=TRUE;}break;caseGLUT_KEY_RIGHT://视角上下左右旋转if(viewer[3]=-3.0)viewer[3]-=0.1;break;caseGLUT_KEY_UP:if(viewer[4]=-4.5)viewer[4]-=0.1;break;default:break;}}voidmouse(intbtn,intstate,intx,inty)//远近视角{if(btn==GLUT_RIGHT_BUTTON&&state==GLUT_DOWN)viewer[2]+=0.3;if(btn==GLUT_LEFT_BUTTON&&state==GLUT_DOWN&&viewer;[2]>=-3.9)viewer[2]-=0.3;}voidLoadBmp(char*filename,TEXTUREIMAGE*textureImg)//载入图片{inti,j;FILE*file;BMPFILEHEADERbmpFile;BMPINFOHEADERbmpInfo;intpixel_size;//初始化纹理数据textureImg->imgWidth=0;textureImg->imgHeight=0;if(textureImg->data!=NULL){delete[]textureImg->data;}//打开文件file=fopen(filename,"rb");if(file==NULL){return;}//获取文件头rewind(file);fread(&bmpFile;,sizeof(BMPFILEHEADER),1,file);fread(&bmpInfo;,sizeof(BMPINFOHEADER),1,file);//验证文件类型if(bmpFile.bfType!=0x4D42){return;}//获取图像色彩数pixel_size=bmpInfo.biBitCount>>3;//读取文件数据textureImg->data=newunsignedchar[bmpInfo.biWidth*bmpInfo.biHeight*pixel_size];for(i=0;idata+(i*bmpInfo.biWidth+j)*pixel_size+2,sizeof(unsignedchar),1,file);//绿色分量fread(textureImg->data+(i*bmpInfo.biWidth+j)*pixel_size+1,sizeof(unsignedchar),1,file);//蓝色分量fread(textureImg->data+(i*bmpInfo.biWidth+j)*pixel_size+0,sizeof(unsignedchar),1,file);//Alpha分量if(pixel_size==4){fread(textureImg->data+(i*bmpInfo.biWidth+j)*pixel_size+3,sizeof(unsignedchar),1,file);}}}//记录图像相关参数textureImg->imgWidth=bmpInfo.biWidth;textureImg->imgHeight=bmpInfo.biHeight;textureImg->byteCount=pixel_size;fclose(file);}//程序主函数voidmain(intargc,char**argv){//读图片LoadBmp("Picture//Sky.bmp",&skyImg;);LoadBmp("Picture//Sun.bmp",&sunImg;);LoadBmp("Picture//Ray.bmp",&rayImg;);LoadBmp("Picture//Mercu.bmp",&mercuImg;);LoadBmp("Picture//Venus.bmp",&venusImg;);//金星LoadBmp("Picture//Earth.bmp",&earthImg;);LoadBmp("Picture//Mars.bmp",&marsImg;);//火星LoadBmp("Picture//Jupiter.bmp",&jupiterImg;);//木星LoadBmp("Picture//Saturn.bmp",&saturnImg;);//土星LoadBmp("Picture//Uranus.bmp",&uranusImg;);//天王星LoadBmp("Picture//Neptune.bmp",&neptuneImg;);//海王星LoadBmp("Picture//Moon.bmp",&moonImg;);glutInit(&argc;,argv);//初始化GLUT库glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE|GLUT_DEPTH);//初始化显示模式glutInitWindowSize(WIN_WIDTH,WIN_HEIGHT);//初始化窗口大小glutInitWindowPosition(20,20);//初始化窗口位置GLuintwindow=glutCreateWindow(WIN_TITLE);//建立窗口InitGL();//初始化OpenGLglutDisplayFunc(Display);glutReshapeFunc(Reshape);glutKeyboardFunc(keyboard);glutSpecialFunc(special_keys);glutMouseFunc(mouse);glutIdleFunc(Display);//设置窗口空闲时的处理函数glutMainLoop();//进入事件处理循环}
2025/6/8 20:47:10 3.53MB 三维动画 模拟太阳系
1
2018最新版本c++课程,内容从基础入门到实战项目,能学习到c++基础,数据结构与算法,MFC、QT、Win32等编程技术,在网上找了很多都不全面有很多缺失,大部分是缺了MFC部分,而MFC是Windows编程中必学的框架,现将收集到的完整教程分享出来
2025/6/7 16:47:41 49KB c/c++ 2018最新
1
C#示例源码C#示例C#源码C#示例源代码C#源代码C#源代码例子C#例子注意:本源代码共有20章节,分五部分上传,名称分别为:明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(5-8)、明日科技《C#示例源代码》(9-12)、明日科技《C#示例源代码》(13-16)、明日科技《C#示例源代码》(17-20)。
源代码目录:第1章 窗体及菜单设计实例001 自定义最大化、最小化和关闭按钮 2实例002 磁性窗体的设计 5实例003 鼠标穿透窗体 12实例004 窗体的浮动及隐藏 14实例005 手动改变自制窗体的大小 16实例006 自定义屏保 19实例007 向窗体中拖放图片并显示 22实例008 仿WindowsXP系统的任务栏菜单 26实例009 用树型列表动态显示菜单 28第2章 控件开发与应用实例010 自定义水晶按钮控件 34实例011 自制数值文本框组件 38实例012 美化单选按钮和复选按钮 43实例013 重绘ListBox控件 48实例014 带行数和标尺的RichTextBox 49实例015 根据文件大小显示文件复制进度条 54实例016 弹出模式窗口显示进度条 58实例017 Popup窗口提醒 61实例018 Vista风格的日历 64实例019 像Excel一样复制DataGridView中的单元格区域数据 69实例020 DataGridView中单元格合并及添加、显示行号 74实例021 从DataGridView控件中拖放数据到TreeView控件 78第3章 图形图像及多媒体应用实例022 生成中文验证码 86实例023 生成图片缩略图 88实例024 不失真压缩图片 90实例025 批量图像格式转换 93实例026 屏幕颜色拾取器 96实例027 为数码照片添加日期 98实例028 批量添加图片水印 100实例029 仿QQ截图功能 104实例030 屏幕抓图 107实例031 抓取网站整页面 109实例032 电子石英钟 113实例033 图片自动播放 115实例034 MP3播放器 118实例035 播放FLV文件 121实例036 Flash播放器 125第4章 报表打印技术实例037 自定义横向或纵向打印 130实例038 自定义打印页码范围 133实例039 分页打印 138实例040 打印条形码 141实例041 打印学生个人简历 145实例042 打印商品入库单据 148实例043 批量打印学生证书 150实例044 动态绑定水晶报表 153实例045 设计信封标签报表 157实例046 设计汇款单式报表 157第5章 鼠标键盘控制实例047 自定义动画鼠标 161实例048 鼠标设置器 163实例049 屏蔽鼠标按键 167实例050 虚拟键盘 172实例051 设置/屏蔽系统热键 182实例052 使用键盘控制窗体或控件的移动 189实例053 多功能键盘 190第6章 操作系统相关技术实例054 利用API设置桌面背景 196实例055 音乐风景桌面 198实例056 定时关闭计算机 201实例057 设置任务栏时间 205实例058 CPU使用率 206实例059 进程管理器 209实例060 数字大小写转换 212实例061 系统挂机锁 214实例062 全角半角转换 218实例063 动态系统托盘图标 221实例064 开机启动项管理 224实例065 显示器控制 228实例066 屏幕放大镜 231实例067 身份证号码验证工具 233第7章 文件及数据流应用实例068 文件批量更名 241实例069 分割与合成文件 244实例070 伪装文件夹 247实例071 获取所有逻辑磁盘目录 250实例072 汉字转拼音 253实例073 使用C#操作INI文件 255实例074 使用C#操作XML文件 257实例075 创建PDF文档 261实例076 批量将Word文档转换为HTML网页 263实例077 Word目录提取工具 265实例078 文件批量解压缩 269第8章 网络开发应用实例079 局域网端口扫描 276实例080 局域网IP地址扫描 280实例081 自动更换IP地址 283实例082 IP地址及手机号码归属地查询 28
1
《果壳中的C#:C#5.0权威指南》是一本C#5.0的权威技术指南,也是第一本中文版C#5.0的学习资料。
《果壳中的C#:C#5.0权威指南》通过26章的内容,系统、全面、细致地讲解了C#5.0从基础知识到各种高级特性的命令、语法和用法。
《果壳中的C#:C#5.0权威指南》的讲解深入浅出,同时为每一个知识点都专门设计了贴切、简单、易懂的学习案例,从而可以帮助读者准确地理解知识点的含义并快速地学以致用《果壳中的C#:C#5.0权威指南》与之前的C#4.0版本相比,还新增了丰富的并发、异步、动态编程、代码精练、安全、COM交互等高级特性相关的内容。
《果壳中的C#:C#5.0权威指南》还融汇了作者多年在软件开发及C#方面的研究及其实践经验,非常适合作为C#技术的一本通自学教程,亦是一本中高级C#技术人员不可多得的必备工具书。
目录第1章C#和.NETFramework简介第2章C#语言基础第3章在C#中创建类第4章C#高级特性第5章框架概述第6章框架基础第7章集合第8章LINQ查询第9章LINQ运算符第10章LINQtoXML第11章其他XML技术第12章销毁和垃圾回收第13章诊断和代码契约第14章并发与异步第15章流与I/O第16章网络第17章序列化第18章程序集第19章反射和元数据第20章动态编程第21章安全第22章高级线程第23章并行编程第24章应用域第25章本地化和COM组件交互第26章正则表达式
2025/6/2 10:07:29 87.08MB c# 果壳中的C# C#5.0 pdf
1
自己编译的文泉驿qpf字体库,用于偶然用不了ttf字体的armQT环境,亲测无误,可以以“./(程序名)-qws-fontwenquanyi”运行.
2025/5/30 18:05:28 33.96MB 文泉驿 大号字体
1
做网站或某些基于网络的软件可能需要根据用户端IP地址查询其物理地址信息,那么就会用到IP数据库。
本文件是我根据2011年5月份的纯真IP数据库进行整合而成,合并了部分同一地区IP,将原来的记录由30多万缩减到17万多条,并将其中的IP数据格式转换成了整数形式,方便查询,提高了查询效率。
附:IP格式转换可参考下面两个VB.NET函数PublicSharedFunctionGetIpFromInt32(ByValvalueAsUInt32)AsStringReturn(value>>24).ToString()&"."&(value24).ToString()&"."&(value<>24).ToString()EndFunctionPublicSharedFunctionGetIpFromString(ByValvalueAsString)AsUInt32DimsAsString()=value.Split("."c)ReturnUInt32.Parse(s(0))<<24OrUInt32.Parse(s(1))<<16OrUInt32.Parse(s(2))<<8OrUInt32.Parse(s(3))EndFunction
2025/5/28 3:11:47 8.13MB IP数据库 IP地址
1
一、VS2010/MFC编程入门教程之目录第一部分:VS2010/MFC开发环境VS2010/MFC编程入门之前言VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解)第二部分:VS2010/MFC应用程序框架VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)VS2010/MFC编程入门之四(MFC应用程序框架分析)VS2010/MFC编程入门之五(MFC消息映射机制概述)第三部分:对话框VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)VS2010/MFC编程入门之七(对话框:为对话框添加控件)VS2010/MFC编程入门之八(对话框:创建对话框类和添加控件变量)VS2010/MFC编程入门之九(对话框:为控件添加消息处理函数)VS2010/MFC编程入门之十(对话框:设置对话框控件的Tab顺序)VS2010/MFC编程入门之十一(对话框:模态对话框及其弹出过程)VS2010/MFC编程入门之十二(对话框:非模态对话框的创建及显示)VS2010/MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)VS2010/MFC编程入门之十四(对话框:向导对话框的创建及显示)VS2010/MFC编程入门之十五(对话框:一般属性页对话框的创建及显示)VS2010/MFC编程入门之十六(对话框:消息对话框)VS2010/MFC编程入门之十七(对话框:文件对话框)VS2010/MFC编程入门之十八(对话框:字体对话框)VS2010/MFC编程入门之十九(对话框:颜色对话框)第四部分:常用控件VS2010/MFC编程入门之二十(常用控件:静态文本框)VS2010/MFC编程入门之二十一(常用控件:编辑框EditControl)VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、RadioButton和CheckBox)VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)VS2010/MFC编程入门之二十四(常用控件:列表框控件ListBox)VS2010/MFC编程入门之二十五(常用控件:组合框控件ComboBox)VS2010/MFC编程入门之二十六(常用控件:滚动条控件ScrollBar)VS2010/MFC编程入门之二十七(常用控件:图片控件PictureControl)VS2010/MFC编程入门之二十八(常用控件:列表视图控件ListControl上)VS2010/MFC编程入门之二十九(常用控件:列表视图控件ListControl下)VS2010/MFC编程入门之三十(常用控件:树形控件TreeControl上)VS2010/MFC编程入门之三十一(常用控件:树形控件TreeControl下)VS2010/MFC编程入门之三十二(常用控件:标签控件TabControl上)VS2010/MFC编程入门之三十三(常用控件:标签控件TabControl下)第五部分:菜单、工具栏与状态栏VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用)VS2010/MFC编程入门之三十六(工具栏:工具栏资源及CToolBar类)VS2010/MFC编程入门之三十七(工具栏:工具栏的创建、停靠与使用)VS2010/MFC编程入门之三十八(状态栏的使用详解)第六部分:文档、视图和框架VS2010/MFC编程入门之三十九(文档、视图和框架:概述)VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系)VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口)第七部分:MF
2025/5/25 15:07:29 613KB 鸡啄米 VS2010 MFC
1
Max2Babylon-0.24.0.zip3DMax导出.babylon格式文件的插件
2025/5/25 12:44:18 2.13MB babylon插件
1
jira管理员使用手册最详细版目录第一章、问题类型 21、添加问题类型: 22、添加”问题类型方案”;
并将需要的”问题类型”添加到我们的”问题类型方案”中: 34、添加完保存的效果,如下图: 35、将“问题类型方案”,应用的项目: 4第二章、自定义字段直接到项目 5目标1、在”创建问题”界面增加一个“多用户组选择器”,如下图: 5步骤一、自定义字段: 5(1)、进入到自定义字段: 5(2)、需要其他字段,可以任意选择(这里以多用户组选择器为例): 6步骤二、创建字段时与问题类型、项目进行关联: 6(3)、根据提示填写(注意选择的内容): 6步骤三、自定义字段时,与界面进行关联: 7(4)、选择将添加的字段应用到哪个界面: 7(5)、创建问题单,此时可以到我们添加的字段了(注意下面的前提条件) 7第三章、界面方案配置: 7步骤一、增加界面 71、新增界面: 72、将需要的字段添加到界面: 8步骤二、新增界面方案 83、新增界面方案(界面方案与界面关联) 84、新增“界面方案”成功如下图,然后点击“配置”将问题类型与界面关联: 95、问题操作“创建问题”与“luke新增界面”进行关联: 96、关联成功的效果如下图,只关联了“创建问题”,其它问题类型采用默认值: 10步骤三、创建”问题类型界面界面方案”: 107、创建“问题类型界面方案”,这里以创建“luke问题类型界面方案”为例: 108、创建成功后,返回”界面方案”查看,发现在“问题类型界面界面方案”列有信息了: 109、返回“问题类型界面方案”进行配置,如下图: 1010、问题类型与界面方案进行关联: 1111、创建成功效果(这里只对一个问题类型“软件bug”进行关联): 11步骤四、将”问题类型界面方案”应用到项目: 1112、对项目所采用的“问题类型界面方案”进行修改: 1113、项目于“问题类型界面方案”进行“关联”: 1214、关联后的效果如下图,没有关联的“问题类型”和“问题操作”怎么也被关联了呢? 1215、看下“问题类型界面方案”的设置吧,因为未指定的采用了默认值: 1216、我们去看看效果吧(这里果然只有我们指定的2个字段): 1317、我看看其它问题类型是什么样的吧(果然如我们所料): 1318、我们去设置未指定的问题类型为系统的默认值吧: 1319、下图是我们将为指定的问题类型采用了系统默认的界面方案: 14第四章、字段配置 15步骤一、配置”自定字段”(如果需要其它字段,自行添加)。
15目的:1、把“luke日期选择器”设置为默认当前日期: 15步骤二、创建”字段配置”: 17目的2、创建“字段配置”把“luke日期选择器”设置为必填: 17步骤三、创建”字段配置方案”: 19目的:3、创建“字段配置方案”,将“字段配置”映射到问题类型上: 19步骤四、创建“字段配置方案”: 21目的:4、进入创建问题界面,查看效果(变为了必填,还有了默认值): 22第五章、工作流 23步骤一、添加状态 24(1)、进入管理员后台,进入“问题”“状态”界面: 24(2)、添加完毕后的截图: 24步骤二、新建工作流: 24步骤三、添加工作流方案: 25(1)、添加工作流方案: 25(2)、指派工作流 25(3)、进入到如下界面,然后点击“askforleave”: 25(4)、添加工作流状态: 26(5)、添加步骤 26(6)、为当前步骤添加”工作流动作”,指定”目标步骤”: 26(7)、添加完毕后的截图如下: 27
2025/5/25 7:57:57 3.59MB jira 管理员 手册
1
【DM365_NAND启动模式解析】DM365是一款由TexasInstruments(TI)生产的数字媒体处理器,常用于视频处理和嵌入式系统。
在DM365中,NAND闪存是一种常见的非易失性存储器,用于存储固件和操作系统。
NAND启动模式是指DM365在上电或复位后从NAND闪存中加载启动代码的过程。
此过程涉及一系列复杂的步骤,确保系统能够正确地从NAND中读取和执行固件。
**NAND启动流程**1.**初始化**:系统首先初始化RAM1的高2KB栈空间(0x7800-0x7fff),避免覆盖用于存储UBL块号的最后32个字节(0x7ffc-0x8000)。
2.**禁止中断**:所有中断(IRQ和FIQ)被禁用,以确保启动过程不被打断。
3.**设置DEEPSLEEPZ/GIO0**:这个外部引脚在NAND启动时必须处于高电平。
4.**读取NANDID**:读取NAND闪存的设备ID,获取设备特性,如页面大小、块大小等。
5.**初始化NAND区域**:根据NAND的参数设置控制器和寄存器。
6.**搜索UBL描述符**:RBL(ROMBootloader)在block1的page0开始搜索UBL(UserBootLoader)的描述符。
如果未找到正确的UBL,会依次检查接下来的24个块,以防遇到坏块。
7.**处理UBL描述符**:UBL描述符包含入口点地址、占用的NAND页数、起始块和起始页等信息,用于指导UBL的加载和执行。
8.**ECC错误检测和校正**:开启硬件ECC(ErrorCorrectionCode)检测,复制UBL到IRAM(InternalRAM)。
如果检测到4位ECC错误,通过ECC算法进行纠正。
如果多次失败,RBL会尝试下一个块,直到找到有效的UBL描述符,或者在搜索完24个块后转而从SD卡启动。
9.**启动UBL**:在UBL的入口点执行代码,将控制权交给UBL。
10.**安全启动模式**:根据配置,启动模式可能包括PLL旁通模式,不使用快速EMIF、DMA或I-Cache。
在其他模式下,这些功能可以被启用以提高性能。
**NANDUBLdescriptor格式**UBL描述符是一个包含关键信息的数据结构,用于指示如何加载和执行UBL。
它可能包含如下字段:-入口点地址:UBL执行的起点。
-UBL占用的NAND页数:指示UBL的大小,必须是连续的页。
-UBL的起始块和起始页:定义UBL在NAND中的位置。
-MAGICIDs:特定的标识符,用于识别不同的启动模式。
**NAND启动详细流程**1.初始化栈空间、禁止中断、设置DEEPSLEEPZ/GIO0。
2.读取NAND设备ID,初始化NAND控制器。
3.搜索UBL描述符,最多遍历24个块。
4.复制并校验UBL到IRAM,根据UBL描述符配置启动选项。
5.转交控制权给UBL执行。
NAND启动流程图和具体的ARMNANDROMBootloader实例进一步详细说明了这个过程。
此外,支持的NAND设备ID列表确保了对多种NAND闪存设备的兼容性。
DM365的NAND启动模式解析涉及了设备识别、错误检测、固件加载和执行等多个环节,确保了系统的稳定和可靠启动。
理解这一过程对于开发和调试基于DM365的嵌入式系统至关重要。
2025/5/20 16:04:21 249KB DM365
1
共 517 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡