VS2010下配置Openmesh+openGL

合集下载

VS2010下配置MPI开发环境

VS2010下配置MPI开发环境
VS2010下配置MPI开发环境
河南大学 计算机与信息工程学院
VS2010下配置MPI开发环境

下载安装MPI
下载地址: /research/projects/mpich2/downloads/tarballs/1.2.1p1/mpich 2-1.2.1p1-win-ia32.msi2010下配置MPI开发环境

测试1:单机测试 在本台计算机上直接运行cpi.exe,输入一个比较大的值800 000 000,如下
配置MPI 集群
测试前需要在每台计算机上创建一个路径 相同的文件夹,比如在D盘根目录下创建 一个mpi的文件夹,将编译成功需要执行 的.exe文件放入mpi文件夹内。
测试单机版的MPICH2 是否安装成功

运行VS2010中的MPITest程序,若得如下结果表示单机版的MPICH2 安装成功
运行MPI程序

打开“开始-所有程序- MPICH-wmpiexec.exe”
在Applicationd右边浏览找 到你在VS2010中生成的exe 文件 设置Number of processes (即进程数目,用来模拟并行 计算的CPU数目)。再按 Execute按钮运行。

注意将各计算机的防火墙关了。各计 算机在同一个项目组内,这里我使用 的个计算机都是在一个路由器内,都 在WORKGROUP工作组内。 选择开始——MPICH2—— wmpiconfig.exe,如下图,如果安装 了MPI的计算机连接成功会高亮显示 (如下图绿色)。

配置MPI 集群


测试是否安装成功


在右边Library Directories加入 “C:\Program Files\MPICH2\lib;”

VC上部署openGL的步骤

VC上部署openGL的步骤

VC上部署openGL的步骤第⼀步:选择⼀个编译环境现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是⽀持OpenGL的。

但这⾥我们选择VC++ 6.0作为学习OpenGL的环境。

第⼆步:安装GLUT⼯具包GLUT不是OpenGL所必须的,但它会给我们的学习带来⼀定的⽅便,推荐安装。

Windows环境下安装GLUT的步骤:1、将下载的压缩包解开,将得到5个⽂件2、以我的安装⽬录为例:(1)“d:\Program Files\Microsoft Visual Studio\VC98\include\GL⽂件夹”。

把解压得到的glut.h放到这个GL⽂件夹⾥。

没有GL⽂件夹可以⾃⼰建⼀个,⼀般都有的。

(2)“d:\Program Files\Microsoft Visual Studio\VC98\lib⽂件夹”)。

把解压得到的glut.lib和glut32.lib放到静态函数库所在⽂件夹,即lib⽂件夹。

(3)把解压得到的glut.dll和glut32.dll放到操作系统⽬录下⾯的system32⽂件夹内。

(典型的位置为:C:\Windows\System32)这是⾮常重要的动态链接库设置!第三步,创建⼯程,其步骤如下:(1)创建⼀个Win32 Console Application。

(以我创建的为例,⼯程名为simpleGL)(2)链接OpenGL libraries:在Visual C++中先单击Project,再单击Settings,再找到Link单击,最后在Object/library modules 的最前⾯加上opengl32.lib Glut32.lib Glaux.lib glu32.lib 。

(3)单击Project Settings中的C/C++标签,将Preprocessor definitions 中的_CONSOLE改为__WINDOWS。

VisualStudio2010配置OpenCV的方法

VisualStudio2010配置OpenCV的方法

VisualStudio2010配置OpenCV的⽅法⽤VS使⽤OpenCV的时候,⼜不想全局配置,每次都要配置简直烦死了。

鉴于此,给⼤家介绍⼀种简便⼀点的⽅法。

配置环境的前提是:成功安装了OpenCV合适的版本。

我这⾥⽤的是OpenCV2.4.9,这个版本解压后,找到⼀个叫build的⽬录,这个是已经编译好的。

我们假设build⽬录结构如图1:图1 、 build⽬录结构并且假设build这个⽂件夹就在D盘下的opencv⽬录下,如果不是这样,你可以移动到D盘的opencv⽬录下。

我们要⽤C++来开发。

平台选⽤x86,当然,具体什么平台,根据你的实际情况。

第⼀步:创建⼀劳永逸的项⽬属性表!打开VisualStudio2010,创建⼀个新的项⽬,如图2所⽰:图 2、创建Win32控制台应⽤程序点击确定,然后下⼀步,进⼊图3所⽰界⾯。

选择空项⽬。

图 3、选择空项⽬点击完成。

在菜单栏中选择视图-->属性管理器,如图4所⽰。

图 4、选择属性管理器然后将属性管理器的选项卡都展开,如图5 所⽰:图 5、展开属性管理器右击 Debug|Win32,选择“添加新项⽬属性表”,操作步骤如图6、7所⽰:图 6图 7 添加OpenCV_Debug属性表添加结果如图8所⽰:图 8、OpenCV_Debug 属性表添加结果双击新添加的属性表。

按照图9所⽰,编辑包含⽬录。

图 9、编辑包含⽬录图 10、添加OpenCV的include⽬录图 11、添加附加库⽬录图 12、添加附加依赖项图12中,添加的附加依赖项后缀之前都有⼀个d,这点也是唯⼀与Release不同的地⽅。

添加的库⽂件名列表如下(注意你的版本号,千万别直接复制粘贴)opencv_imgproc249d.libopencv_calib3d249d.libopencv_contrib249d.libopencv_core249d.libopencv_features2d249d.libopencv_flann249d.libopencv_gpu249d.libopencv_highgui249d.libopencv_legacy249d.libopencv_ml249d.libopencv_nonfree249d.libopencv_objdetect249d.libopencv_ocl249d.libopencv_photo249d.libopencv_stitching249d.libopencv_superres249d.libopencv_ts249d.libopencv_video249d.libopencv_videostab249d.lib最后点击确定。

Win7x64+VS2010配置OpenMPI

Win7x64+VS2010配置OpenMPI
Win7x64 + Visual Studio 2010 配置 OpenMPI
1. 安装 Visual Studio 2010(X64) 2. 下载 OpenMPI_v1.6.2-2_win64.exe,地址如下: /software/ompi/v1.6/ 3. 安装 OpenMPI。管理员权限运行 exe 文件,一路 next,在选择是否添加路径 的时候选择为当前用户添加路径,继续 next 直到结束,中途可以考虑更改 文件夹名称。 4. 接下来是最为关键的配置过程,我花费了 4 天时间才搞定,这也是我写这篇 文章的原因,希望能为接下来的同道中人减少点障碍。 (1) 运行 Visual Studio 2010,新建项目命名为 mytest。
(2) 菜单栏文件新建文件
保存为”test.c”。
(3)菜单栏文件将 test.c 移入mytest
(3) 更改配置 win32 为 x64
点击上图所示下拉菜单,选择“新建”,如下图:
(5)右键 mytest 项目名,打开“属性”对话框
(6)配置属性VC++目录,需要修改四项: “可执行文件目录”添加安装路径下的 bin 文件夹; (文件路径视安装情况确
定) “包含目录”添加 include 文件夹; “库目录”添加 lib 文件夹; “源目录”添加 include 文件夹。
四项均添加完之后结果如上图。
(7)展开 C/C++选项卡,按照下面的步骤更改配置。
A. 常规多处理器编译是
B. 预处理器添加”OMPI_IMPORTS”
C. 运行库多线程调试(/MTD)
D. OpeΒιβλιοθήκη MP 支持是(8)展开“链接器”选项卡,在“输入”的“附加依赖项”中添加 libmpi.lib

如何在VS2010 中运行 Nehe OpenGL例子程序

如何在VS2010 中运行 Nehe OpenGL例子程序

如何在VS2010中文版中运行Nehe教程的OpenGL例子程序图文在网上找了一些,但是是英文版的解释,最后还有一些问题。

我问了我的朋友JWQ(秦姐)。

她细致的解答帮我成功运行出来了,在此和大家分享一下。

打开Visaul Studio 2010.然后【文件】>【新建】>【项目】按照图示选择语言Visual C++ 然后选择空项目。

最后别忘了输入项目名字。

输入名称之后点击确定,然后就变成了这样。

如果你看不到解决方案资源管理器。

可以点击菜单栏中的【视图】》【解决方案资源管理器】。

在解决方案资源管理器中的“源文件”上右击鼠标,选择【添加】》【新建项】。

将会弹出如图所示对话框,选择C++文件。

最后别忘了给这个文件起一个名字,点击【添加】按钮。

【项目】》【Lesson1属性】。

如果你起的项目名称是别的,自然这个项目属性就不叫Lesson1了。

点击后弹出如下对话框。

【配置属性】》【链接器】》【输入】找到【附加依赖项】点击【附加依赖项】这一行有内容的部分,会出来一个下拉小三角,点击【<编辑>】,将以下内容粘贴进去,注意,只能用单击鼠标右键然后粘贴的方法。

效果如图。

点击确定。

opengl32.libglu32.libglaux.libodbc32.libodbccp32.lib现在就可以将代码贴入了,然后快捷键Ctrl+F5运行。

/** This Code Was Created By Jeff Molofee 2000* A HUGE Thanks To Fredric Echols For Cleaning Up* And Optimizing This Code, Making It More Flexible!* If You've Found This Code Useful, Please Let Me Know.* Visit My Site At */#include <windows.h> // Header File For Windows#include <gl\gl.h> // Header File For The OpenGL32 Library#include <gl\glu.h> // Header File For The GLu32 Library#include <gl\glaux.h> // Header File For The Glaux LibraryHDC hDC=NULL; // Private GDI Device Context HGLRC hRC=NULL; // Permanent Rendering ContextHWND hWnd=NULL; // Holds Our Window Handle HINSTANCE hInstance; // Holds The Instance Of The Applicationbool keys[256]; // Array Used For The Keyboard Routinebool active=TRUE; // Window Active Flag Set To TRUE By Default bool fullscreen=TRUE; // Fullscreen Flag Set To Fullscreen Mode By DefaultLRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Declaration For WndProcGLvoid ReSizeGLScene(GLsizei width, GLsizei height) // Resize And Initialize The GL Window{if (height==0) // PreventA Divide By Zero By{height=1; //Making Height Equal One}glViewport(0,0,width,height); // Reset The CurrentViewportglMatrixMode(GL_PROJECTION); // Select The ProjectionMatrixglLoadIdentity(); // ResetThe Projection Matrix// Calculate The Aspect Ratio Of The WindowgluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);glMatrixMode(GL_MODELVIEW); // Select TheModelview MatrixglLoadIdentity(); // ResetThe Modelview Matrix}int InitGL(GLvoid) // AllSetup For OpenGL Goes Here{glShadeModel(GL_SMOOTH); // Enable SmoothShadingglClearColor(0.0f, 0.0f, 0.0f, 0.5f); // Black BackgroundglClearDepth(1.0f); // DepthBuffer SetupglEnable(GL_DEPTH_TEST); // Enables DepthTestingglDepthFunc(GL_LEQUAL); // The Type OfDepth Testing To DoglHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really Nice Perspective Calculationsreturn TRUE; //Initialization Went OK}int DrawGLScene(GLvoid) // Here's Where WeDo All The Drawing{glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth BufferglLoadIdentity(); // ResetThe Current Modelview Matrixreturn TRUE; //Everything Went OK}GLvoid KillGLWindow(GLvoid) // Properly KillThe Window{if (fullscreen) // Are WeIn Fullscreen Mode?{ChangeDisplaySettings(NULL,0); // If So Switch Back ToThe DesktopShowCursor(TRUE); // ShowMouse Pointer}if (hRC) //Do We Have A Rendering Context?{if (!wglMakeCurrent(NULL,NULL)) // Are We Able To ReleaseThe DC And RC Contexts?{MessageBox(NULL,"Release Of DC And RC Failed.","SHUTDOWN ERROR",MB_OK |MB_ICONINFORMA TION);}if (!wglDeleteContext(hRC)) // Are We Able ToDelete The RC?{MessageBox(NULL,"Release Rendering Context Failed.","SHUTDOWN ERROR",MB_OK |MB_ICONINFORMA TION);}hRC=NULL; //Set RC To NULL}if (hDC && !ReleaseDC(hWnd,hDC)) // Are We Able To ReleaseThe DC{MessageBox(NULL,"Release Device Context Failed.","SHUTDOWN ERROR",MB_OK |MB_ICONINFORMA TION);hDC=NULL; //Set DC To NULL}if (hWnd && !DestroyWindow(hWnd)) // Are We Able To DestroyThe Window?{MessageBox(NULL,"Could Not Release hWnd.","SHUTDOWN ERROR",MB_OK | MB_ICONINFORMA TION);hWnd=NULL; //Set hWnd To NULL}if (!UnregisterClass("OpenGL",hInstance)) // Are We Able To Unregister Class {MessageBox(NULL,"Could Not Unregister Class.","SHUTDOWN ERROR",MB_OK |MB_ICONINFORMA TION);hInstance=NULL; // SethInstance To NULL}}/* This Code Creates Our OpenGL Window. Parameters Are: ** title - Title To Appear At The Top Of The Window ** width - Width Of The GL Window Or Fullscreen Mode ** height - Height Of The GL Window Or Fullscreen Mode ** bits - Number Of Bits To Use For Color (8/16/24/32) ** fullscreenflag - Use Fullscreen Mode (TRUE) Or Windowed Mode (FALSE) */BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag){GLuint PixelFormat; // Holds The Results After Searching For A Match WNDCLASS wc; // Windows Class StructureDWORD dwExStyle; // Window Extended StyleDWORD dwStyle; // Window StyleRECT WindowRect; // Grabs Rectangle Upper Left / LowerRight ValuesWindowRect.left=(long)0; // Set Left Value To 0WindowRect.right=(long)width; // Set Right Value To Requested WidthWindowRect.top=(long)0; // Set Top Value To 0WindowRect.bottom=(long)height; // Set Bottom Value To Requested Heightfullscreen=fullscreenflag; // Set The Global Fullscreen FlaghInstance = GetModuleHandle(NULL); // Grab AnInstance For Our Windowwc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; // Redraw On Size, And OwnDC For Window.wc.lpfnWndProc = (WNDPROC) WndProc; // WndProc HandlesMessageswc.cbClsExtra = 0; //No Extra Window Datawc.cbWndExtra = 0; //No Extra Window Datawc.hInstance = hInstance; // Set TheInstancewc.hIcon = LoadIcon(NULL, IDI_WINLOGO); // Load TheDefault Iconwc.hCursor = LoadCursor(NULL, IDC_ARROW); // Load The ArrowPointerwc.hbrBackground = NULL; //No Background Required For GLwc.lpszMenuName = NULL; //We Don't Want A Menuwc.lpszClassName = "OpenGL"; //Set The Class Nameif (!RegisterClass(&wc)) //Attempt To Register The Window Class{MessageBox(NULL,"Failed To Register The Window Class.","ERROR",MB_OK|MB_ICONEXCLAMA TION);return FALSE;// Return FALSE}if (fullscreen)// Attempt Fullscreen Mode?{DEVMODE dmScreenSettings; //Device Modememset(&dmScreenSettings,0,sizeof(dmScreenSettings)); // Makes Sure Memory's CleareddmScreenSettings.dmSize=sizeof(dmScreenSettings); // Size Of The DevmodeStructuredmScreenSettings.dmPelsWidth = width; // Selected ScreenWidthdmScreenSettings.dmPelsHeight = height; // Selected ScreenHeightdmScreenSettings.dmBitsPerPel = bits; // Selected BitsPer PixeldmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;// Try To Set Selected Mode And Get Results. NOTE: CDS_FULLSCREEN Gets Rid Of Start Bar.if(ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCES SFUL){// If The Mode Fails, Offer Two Options. Quit Or Use Windowed Mode.if (MessageBox(NULL,"The Requested Fullscreen Mode Is Not Supported By\nYour VideoCard. Use Windowed Mode Instead?","NeHe GL",MB_YESNO|MB_ICONEXCLAMATION)==IDYES){fullscreen=FALSE; // Windowed Mode Selected. Fullscreen =FALSE}else{// Pop Up A Message Box Letting User Know The Program Is Closing.MessageBox(NULL,"Program Will Now Close.","ERROR",MB_OK|MB_ICONSTOP);return FALSE;// Return FALSE}}}if (fullscreen)// Are We Still In Fullscreen Mode?{dwExStyle=WS_EX_APPWINDOW; //Window Extended StyledwStyle=WS_POPUP;// Windows StyleShowCursor(FALSE);// Hide Mouse Pointer}else{dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; // Window Extended StyledwStyle=WS_OVERLAPPEDWINDOW; // WindowsStyle}AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle); // Adjust Window To TrueRequested Size// Create The Windowif (!(hWnd=CreateWindowEx( dwExStyle, //Extended Style For The Window"OpenGL",// Class Nametitle,// Window TitledwStyle |// Defined Window StyleWS_CLIPSIBLINGS |// Required Window StyleWS_CLIPCHILDREN,// Required Window Style0, 0,// Window PositionWindowRect.right-WindowRect.left, //Calculate Window WidthWindowRect.bottom-WindowRect.top, //Calculate Window HeightNULL,// No Parent WindowNULL,// No MenuhInstance,// InstanceNULL)))// Dont Pass Anything To WM_CREATE{KillGLWindow(); // Reset TheDisplayMessageBox(NULL,"Window Creation Error.","ERROR",MB_OK|MB_ICONEXCLAMA TION);return FALSE; // Return FALSE}static PIXELFORMATDESCRIPTOR pfd= // pfd Tells Windows How We WantThings To Be{sizeof(PIXELFORMA TDESCRIPTOR), // Size Of This Pixel FormatDescriptor1, //Version NumberPFD_DRAW_TO_WINDOW | // Format Must SupportWindowPFD_SUPPORT_OPENGL | // Format Must SupportOpenGLPFD_DOUBLEBUFFER, // Must SupportDouble BufferingPFD_TYPE_RGBA, // Request An RGBAFormatbits, // SelectOur Color Depth0, 0, 0, 0, 0, 0, // Color BitsIgnored0, //No Alpha Buffer0, //Shift Bit Ignored0, //No Accumulation Buffer0, 0, 0, 0, //Accumulation Bits Ignored16, //16Bit Z-Buffer (Depth Buffer)0, //No Stencil Buffer0, //No Auxiliary BufferPFD_MAIN_PLANE, // Main DrawingLayer0, //Reserved0, 0, 0 // LayerMasks Ignored};if (!(hDC=GetDC(hWnd))) // Did We Get A DeviceContext?{KillGLWindow(); // Reset TheDisplayMessageBox(NULL,"Can't Create A GL Device Context.","ERROR",MB_OK|MB_ICONEXCLAMA TION);return FALSE; // Return FALSE}if (!(PixelFormat=ChoosePixelFormat(hDC,&pfd))) // Did Windows Find A Matching Pixel Format?{KillGLWindow(); // Reset TheDisplayMessageBox(NULL,"Can't Find A Suitable PixelFormat.","ERROR",MB_OK|MB_ICONEXCLAMATION);return FALSE; // Return FALSE}if(!SetPixelFormat(hDC,PixelFormat,&pfd)) // Are We Able To Set The Pixel Format?{KillGLWindow(); // Reset TheDisplayMessageBox(NULL,"Can't Set The PixelFormat.","ERROR",MB_OK|MB_ICONEXCLAMATION);return FALSE; // Return FALSE}if (!(hRC=wglCreateContext(hDC))) // Are We Able To Get A RenderingContext?{KillGLWindow(); // Reset TheDisplayMessageBox(NULL,"Can't Create A GL Rendering Context.","ERROR",MB_OK|MB_ICONEXCLAMA TION);return FALSE; // Return FALSE}if(!wglMakeCurrent(hDC,hRC)) // Try To Activate The RenderingContext{KillGLWindow(); // Reset TheDisplayMessageBox(NULL,"Can't Activate The GL Rendering Context.","ERROR",MB_OK|MB_ICONEXCLAMA TION);return FALSE; // Return FALSE}ShowWindow(hWnd,SW_SHOW); // Show The WindowSetForegroundWindow(hWnd); // Slightly HigherPrioritySetFocus(hWnd); // Sets KeyboardFocus To The WindowReSizeGLScene(width, height); // Set Up Our Perspective GL Screenif (!InitGL()) // Initialize OurNewly Created GL Window{KillGLWindow(); // Reset TheDisplayMessageBox(NULL,"InitializationFailed.","ERROR",MB_OK|MB_ICONEXCLAMA TION);return FALSE; // Return FALSE}return TRUE; // Success}LRESULT CALLBACK WndProc( HWND hWnd, // Handle For This WindowUINT uMsg, // Message ForThis WindowWPARAM wParam, // AdditionalMessage InformationLPARAM lParam) // AdditionalMessage Information{switch (uMsg) // Check ForWindows Messages{case WM_ACTIV A TE: // Watch ForWindow Activate Message{if (!HIWORD(wParam)) // Check MinimizationState{active=TRUE; // Program IsActive}else{active=FALSE; // Program Is NoLonger Active}return 0; // ReturnTo The Message Loop}case WM_SYSCOMMAND: // InterceptSystem Commands{switch (wParam) // Check SystemCalls{case SC_SCREENSA VE: // ScreensaverTrying To Start?case SC_MONITORPOWER: // Monitor Trying To EnterPowersave?return 0; // PreventFrom Happening}break; // Exit}case WM_CLOSE: // Did We ReceiveA Close Message?{PostQuitMessage(0); // Send A QuitMessagereturn 0; // JumpBack}case WM_KEYDOWN: // Is A Key BeingHeld Down?{keys[wParam] = TRUE; // If So, Mark It As TRUEreturn 0; // JumpBack}case WM_KEYUP: // Has A Key BeenReleased?{keys[wParam] = FALSE; // If So, Mark It As FALSEreturn 0; // JumpBack}case WM_SIZE: // Resize TheOpenGL Window{ReSizeGLScene(LOWORD(lParam),HIWORD(lParam)); // LoWord=Width, HiWord=Heightreturn 0; // JumpBack}}// Pass All Unhandled Messages To DefWindowProcreturn DefWindowProc(hWnd,uMsg,wParam,lParam);}int WINAPI WinMain( HINSTANCE hInstance, // InstanceHINSTANCE hPrevInstance, // Previous InstanceLPSTR lpCmdLine, // Command LineParametersint nCmdShow) // WindowShow State{MSG msg; // WindowsMessage StructureBOOL done=FALSE; // Bool VariableTo Exit Loop// Ask The User Which Screen Mode They Preferif (MessageBox(NULL,"Would You Like To Run In Fullscreen Mode?", "Start FullScreen?",MB_YESNO|MB_ICONQUESTION)==IDNO){fullscreen=FALSE; // Windowed Mode }// Create Our OpenGL Windowif (!CreateGLWindow("NeHe's OpenGL Framework",640,480,16,fullscreen)){return 0; // Quit IfWindow Was Not Created}while(!done) // Loop That RunsWhile done=FALSE{if (PeekMessage(&msg,NULL,0,0,PM_REMOVE)) // Is There A Message Waiting?{if (msg.message==WM_QUIT) // Have We Received A QuitMessage?{done=TRUE; // If Sodone=TRUE}else // If Not,Deal With Window Messages{TranslateMessage(&msg); // Translate The MessageDispatchMessage(&msg); // Dispatch The Message}}else // IfThere Are No Messages{// Draw The Scene. Watch For ESC Key And Quit Messages From DrawGLScene()if (active) // ProgramActive?{if (keys[VK_ESCAPE]) // Was ESC Pressed?{done=TRUE; // ESCSignalled A Quit}else // NotTime To Quit, Update Screen{DrawGLScene(); // Draw The SceneSwapBuffers(hDC); // Swap Buffers(Double Buffering)}}if (keys[VK_F1]) // Is F1 BeingPressed?{keys[VK_F1]=FALSE; // If So Make KeyFALSEKillGLWindow(); // Kill OurCurrent Windowfullscreen=!fullscreen; // Toggle Fullscreen /Windowed Mode// Recreate Our OpenGL Windowif (!CreateGLWindow("NeHe's OpenGL Framework",640,480,16,fullscreen)){return 0; // Quit IfWindow Was Not Created}}}}// ShutdownKillGLWindow(); // Kill The Window return (msg.wParam); // Exit The Program}这是Nehe教程第一课的代码。

VS2010 VS2008MFC openGL初始化

VS2010 VS2008MFC openGL初始化

VS2008和VS2010 OpenGL的MFC初始化(吐血整理)1.建立一个单文档工程XXX2.这时你会看见自动生成了很多的类,08和10版本的还是不一样,但是主要的类还是那么几个,我们主要关注的是XXXView类,首先得保证你的电脑包含了OpenGL工具包,没有的话自己下载个很方便。

查看方法安装路径下vc/include/GL看看有没有GL.h,glu.h,gluax.h,自己最好添加个glut.h.。

3.在stdafx.h头文件中,添加#include”GL/gl.h”, #include”GL/glu.h”,如果有glut.h的话就直接添加一句#include”GL/glut.h”就可以了。

4.在XXXView.h文件中加入所需的成员变量和函数:public:CClientDC *m_pDC;void InitOpengl();BOOL SetupPixelFormat(void);void DrawScene(void);5.在XXXView.cpp文件中,在CXXXView的构造函数中加入:m_pDC=NULL;6.在XXXView.cpp文件中,加入相应的成员函数(直接复制就行):void CXXXView::InitOpengl(){PIXELFORMATDESCRIPTOR pfd;int n;HGLRC hrc;m_pDC=new CClientDC(this);ASSERT(m_pDC != NULL);if(!bSetupPixelFormat())return;n=::GetPixelFormat(m_pDC->GetSafeHdc());::DescribePixelFormat(m_pDC->GetSafeHdc(), n,sizeof(pfd),&pfd);hrc=wglCreateContext(m_pDC->GetSafeHdc());wglMakeCurrent(m_pDC->GetSafeHdc(),hrc);glClearDepth(1.0f);glEnable(GL_DEPTH_TEST);}BOOL CXXXView::SetupPixelFormat(){static PIXELFORMA TDESCRIPTOR pfd ={sizeof(PIXELFORMATDESCRIPTOR),1,PFD_DRAW_TO_WINDOW |PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,PFD_TYPE_RGBA,24,0, 0, 0, 0, 0, 0,0,0,0,0, 0, 0, 0,32,0,0,PFD_MAIN_PLANE,0,0, 0, 0};int pixelformat;if((pixelformat = ChoosePixelFormat(m_pDC->GetSafeHdc(), &pfd)) == 0) {MessageBox("ChoosePixelFormat failed");return FALSE;}if(SetPixelFormat(m_pDC->GetSafeHdc(), pixelformat, &pfd) == FALSE) {MessageBox("SetPixelFormat failed");return FALSE;}return TRUE;}void CXXXView::DrawScene(void){//设置清屏颜色为黑色glClearColor(0.0f,0.0f,0.0f,0.0f);//清除颜色缓冲区和深度缓冲区glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//矩阵堆栈函数,和glPopMatrix()相对应添加你想要话的图形,如:glRectf(-0.5,-0.5,0.5,0.5);//画一个矩形;SwapBuffers(wglGetCurrentDC());//不能省略}7.在XXXView.cpp文件中,在PreCreateWindow函数中加入:cs.style |= WS_CLIPSIBLINGS | WS_CLIPCHILDREN;//比较重要8.在XXXView.cpp文件中,在OnDraw函数中加入:DrawScene();9.在CXXXView中,建立如下消息的映射函数:WM_CREATE, WM_DESTROY, WM_SIZE, WM_ERASEBKGND,并加入划线的代码,如下所示:int CXXXView::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CView::OnCreate(lpCreateStruct) == -1)return -1;// TODO: Add your specialized creation code hereInitOpengl();return 0;}void CXXXView::OnDestroy(){CView::OnDestroy();// TODO: Add your message handler code hereHGLRC hrc;hrc = ::wglGetCurrentContext();::wglMakeCurrent(NULL,NULL);if(hrc)::wglDeleteContext(hrc);if(m_pDC)delete m_pDC;}BOOL CXXXView::OnEraseBkgnd(CDC* pDC){return TRUE;}void CXXXView::OnSize(UINT nType, int cx, int cy){CView::OnSize(nType, cx, cy);// TODO: Add your message handler code hereint w=cx;int h=cy;GLfloat nRange=1.0f;//避免除数为0if(h==0)h=1;//设置视口与窗口匹配glViewport(0,0,w,h);//重新设置坐标系统glMatrixMode(GL_PROJECTION);glLoadIdentity();//建立正交变换下的剪切体if(w<h)glOrtho(-nRange,nRange,-nRange*h/w,nRange*h/w,-nRange,nRange);elseglOrtho(-nRange*w/h,nRange*w/h,-nRange,nRange,-nRange,nRange);glMatrixMode(GL_MODELVIEW);glLoadIdentity();}需要注意的是08中没有类向导,需要右键你的类添加消息映射,最后祝大家学习愉快。

vs2010加opencv配置方法

vs2010加opencv配置方法

一、在环境变量里面新建PATHD:\opencv\build\x86\vc10\bin;D:\tbb30\bin\ia32\vc10OPENCVD:\opencv\build二包含目录二、建立一个demo在C++下,新建一个“win32控制台程序”,“空项目”即可,输入以下代码:#include"highgui.h"int main(){const char*imagename = "D:/Demo.jpg"; //随便放一张jpg图片在D盘或另行设置目录cv::Mat img =cv::imread(imagename);if(img.empty()) return -1; //是否加载成功if(!img.data)return -1;cv::namedWindow("image",CV_WINDOW_AUTOSIZE);cv::imshow("image", img);cv::waitKey();return 0;}三、配置(1)在“视图”中打开“属性管理器”;(2)在“属性管理器”中双击Demo的项目名称;(3)在“Demo属性页”->“VC++目录”->“包含目录”中追加下面一行(包括所有分号,勿删VS原始数据):;D:\opencv\build\include;D:\opencv\build\include\opencv;D:\opencv\bui ld\include\opencv2(4)、在“Demo属性页”->“VC++目录”->“库目录”中追加下面一行(包括所有分号,勿删VS原始数据):;D:\opencv\build\x86\vc10\lib;D:\ttb30\lib\ia32\vc10(5)、在“Demo属性页”(“配置”==“Debug”)->“配置属性”->“链接器”->“输入”->“附加依赖库”中追加下面一行(包括所有分号,勿删VS原始数据):;opencv_core231d.lib;opencv_highgui231d.lib;opencv_video231d.lib;open cv_ml231d.lib;opencv_legacy231d.lib;opencv_imgproc231d.lib;opencv_calib3d231d.lib;opencv_contrib231d.lib; opencv_features2d231d.lib;opencv_flann231d.lib;opencv_gpu231d.lib; opencv_haartraining_engined.lib;opencv_objdetect231d.lib; opencv_ts231d.lib;opencv_video231d.lib(6)、在“Demo属性页”(“配置”==“Release”)->“配置属性”->“链接器”->“输入”->“附加依赖库”中追加下面一行(包括所有分号,勿删VS原始数据):;opencv_core231.lib;opencv_highgui231.lib;opencv_video231.lib;opencv_ ml231.lib;opencv_legacy231.lib;opencv_imgproc231.lib;opencv_calib3d231.lib;opencv_contrib231.lib;opencv_features2d231.lib; opencv_flann231.lib;opencv_gpu231.lib;opencv_haartraining_engine.lib; opencv_objdetect231.lib;opencv_ts231.lib;opencv_video231.lib。

用VisualC_中的MFC和OpenGL建立三维图形应用环境

用VisualC_中的MFC和OpenGL建立三维图形应用环境

用Visual C++中的MFC和OpenGL建立三维图形应用环境哈尔滨工业大学现代生产技术中心(150001) 凌 云 储林波摘 要:使用Visual C++的基本类库MFC建立面向对象的OpenGL三维图形应用程序的开发环境。

关键词:三维图形编程 OpenGL三维图形库 M FC类库O penGL是一个功能强大的三维图形库,它与操作系统无关,用O penGL编写的应用程序可以很容易地移植到支持O penG L的操作系统上,例如U N IX。

在Windo ws N T和W indo w s95中提供了对OpenGL的支持,在Window s N T和W indow s95上可以使用V i-sual C++V2.0以上版本来开发OpenGL的应用程序。

而V isual C++完善的基本类库M FC和应用向导A ppW izard使得开发一个复杂的应用程序变得轻松自如。

如果将二者结合起来,便可开发出相当有水平的Windo ws下三维图形应用程序。

1 OpenGL绘图环境初始化使用OpenGL函数库之前,需要以特定的过程进行初始化。

因为O penG L函数库和操作系统无关,它有自已的独特设计,与W indo ws的图形设备接口GDI 模型以及多数M FC应用程序的建立方法不太一致。

Windo ws为此提供了一些专门的A P I函数。

下面简要介绍一下Win32下使用O penG L函数库特殊的初始化过程。

首先,必须重新设置画图窗口的象素格式,使其符合O penGL对象素格式的需要。

为此需声明一个P IX-ELF O RM A T D ESCR IPT OR结构的变量,并适当地设置某些结构成员的值,使其支持O penG L及其颜色模式。

变量的声明见后面SetupPix elFo rma t()函数的描述。

再以此变量为参数调用Choo seP ix elFo rmat()函数分配1个象素格式号,然后调用SetPix elF or mat()将其设置为当前象素格式。

visual studio 2010配置 open cv 2

visual studio 2010配置 open cv 2

visual studio 2010配置open cv 2.2.01.准备工作①安装visual studio 2010②安装 OpenCV-2.2.0-win32-vs2010 这个安装文件中已经有了编译好的库,比较方便,不必用cmake自己编译,假设安装目录在C:\Opencv2.22. 配置Windows环境变量Path将C:\Opencv2.2\bin加入Windows系统环境变量Path中。

加入后可能需要注销当前Windows 用户(或重启)后重新登陆才生效。

3 设置依赖的库和包含目录和库目录在附加依赖项中,增加所要包含的库,具体操作:链接器-->输入-->附加依赖项opencv_core220d.lib;opencv_highgui220d.lib;opencv_video220d.lib;opencv_ml220d.l ib;opencv_legacy220d.lib;opencv_imgproc220d.lib;详细:opencv_calib3d220.libopencv_calib3d220d.libopencv_contrib220.libopencv_contrib220d.libopencv_core220.libopencv_core220d.libopencv_features2d220.libopencv_features2d220d.libopencv_ffmpeg220.libopencv_ffmpeg220d.libopencv_flann220.libopencv_flann220d.libopencv_gpu220.libopencv_gpu220d.libopencv_highgui220.libopencv_highgui220d.libopencv_imgproc220.libopencv_imgproc220d.libopencv_legacy220.libopencv_legacy220d.libopencv_ml220.libopencv_ml220d.libopencv_objdetect220.lib opencv_objdetect220d.lib opencv_ts220.libopencv_video220.libopencv_video220d.lib在VC++目录中的包含目录添加C:\OpenCV2.2\includeC:\OpenCV2.2\include\opencvC:\OpenCV2.2\lib4.检查是否配置成功新建项目OpencvHello,Win32控制台即可,写下一下代码编译并运行,看能否运行成功参考代码(读取一幅图像):#include "stdafx.h"#include <iostream>#include <opencv\cv.h>#include <opencv\cxcore.h>#include <opencv\highgui.h>using namespace cv;using namespace std;int _tmain(int argc, _TCHAR* argv[]){const char* imagename = "lena.jpg"; //lena.jpg应在存在于当前目录下cv::Mat img = cv::imread(imagename); // Matlab风格的cvLoadImage 函数的另一种调用if(img.empty()){fprintf(stderr, "Can not load image %s/n", imagename);return -1;}if( !img.data ) // 检查是否正确载入图像return -1;cv::namedWindow("image", CV_WINDOW_AUTOSIZE); //创建窗口cv::imshow("image", img); //显示图像cv::waitKey();return 0;}。

详解VS2010如何搭配汇编程序开发环境的图解教程

详解VS2010如何搭配汇编程序开发环境的图解教程

详解VS2010如何搭配汇编程序开发环境的图解教程本文和大家分享一下如何搭配汇编程序开发环境的图解教程,非常不错的文章哦。

引子由于这些日子一直都在研究底层的技术,从Windows 驱动程序,到Windows 内核等等技术的学习,让我对底层的技术越发有兴趣了,而刚好,在研究WRK 时,对内存管理,寄存器,地址总线,数据总线,控制总线等的理解不够透彻,所以越发的想学习汇编程序设计来提升功力,而由于近来在公司里一直都有项目压着,所以在公司里也实在不好拿本汇编程序设计看,所以只好晚上回来学习了,汇编看了几个晚上,也算是蛮有感觉的。

今天就先来搭个开发环境再说吧。

开发环境搭配我介绍四种开发汇编程序的方式:第一种:直接在Dos 环境下使用Edit 命令调出源码编辑框,生成源码后,可以使用由微软提供的masm 汇编编译器来对源码进行编译,编译完后再使用Linker 连接器即可得到可执行文件,这种方式现在几乎被灭绝了(当然使用masm 汇编编译器还是很普遍的),除非你真要在DOS 环境下运行汇编程序;第二种:通过简化第一种方式而来;第三种:直接使用Masm for Windows 集成实验环境,这个开发环境呢,非常适合汇编语言的初学者,因为这个IDE 本身就是由一些从事汇编程序教学的大学老师开发的出来用于汇编初学者进行学习和实验的,所以使用简单,方便,这里可以对这个IDE 稍加推荐;第四种:则是通过Visual Studio 这个强大的IDE 来实现汇编程序的编译,运行和调试,至于Visual Studio 就不多做介绍了,.Net 用了这么多年,这东西强大到什么程度那是总所周知的;第一种方式:使用Edit + MASM 5.0 编译器+ Linker 连接器其实这种方式是很简单的,只是很麻烦,因为简单而且麻烦,所以我采用尽可能的将截图传上来,然后稍加注解的方式进行介绍,软件准备:需要MASM 5.0 或者以上的汇编编译器首先,是要编辑汇编源代码:其实对于源码的编辑根本不需要向如下这么麻烦,直接拿个记事本就OK 了运行cmd 命令输入Edit 命令从而弹出汇编源码编辑框在源码输入框中输入汇编源码将编辑好的汇编源码保存到xx.asm 文件中然后就是要编译编辑好的汇编源代码在Dos 环境下进入到MASM 5.0 汇编编译器所在的目录然后运行masm.exe可以从上面的截图中看到[. ASM] 的标记,这个标记代表的是需要在这里输入要编译的源程序文件名,这里有一点特别的是,由于默认的文件扩展名为 .asm ,所以在编译 .asm 的汇编源程序时可以不用指定源程序所在文件的扩展名。

VS2010新手必知相关配置和操作

VS2010新手必知相关配置和操作

VS2010新手必知相关配置和操作borlittle2011-8-26目录设置打开工程中的资源 (1)设置输出目录和和源文件目录 (2)设置调试 (6)设置链接器 (6)总结一下该部分设置的注意事项 (8)设置选项对话框 (9)为工程文件减肥 (10)添加编辑器显示行号 (11)添加“生成”工具条 (11)添加上“开始执行而不调试”的菜单 (13)作为VS2010平台的使用新手,尤其是之前没有用过VS2003,VS2005,VS2008的或者只用过VC6.0的人,应该知道这些操作,熟练这些操作将大大的提高编程工作效率。

设置打开工程中的资源VS2010中默认打开是以资源视图的方式(也就是双击之后往往只看到一个空白的对话框)这和VC中默认是资源管理器不同,所以要设置一下,这样以后双击以rc结尾的文件才能方便可视化编辑。

设置过之后双击资源文件设置输出目录和和源文件目录有时工程项目中需要配置不同的输出目录和和源文件目录,设置方法如下:点击”XX属性”来设置可以看到该选项下有很多关于自己工程项目的配置,这些配置都是只针对该项目的,工程项目改变了又需要另行配置.可以选择手动“编辑”或者通过对话框“浏览”获得目录。

调试时,调试目录为要被调试的可执行文件的目录,而输出目录是链接器生成可执行程序的目录。

一般情况下可以使输出目录要和调试目录一样,如果调试目录不正确会提示找不到相关的可执行文件。

在VS2010平台中:SolutionDir(解决方案目录)》ProjectDir(项目目录)“》”表示包含的意思,即一个解决方案(.sln文件)下面可以有几个项目(.vcxproj文件)。

可以在选择编辑目录之后,通过“宏”按钮来查看相关信息,也可以由此来查看自己是否已经配置正确了,如下图:再如:上图中是用“浏览”方式得到的目录,应尽量用宏名串的。

常规设置中界面如上图。

设置调试调试设置中界面如上图。

设置链接器链接器常规设置如上图,如果常规中“输出目录”配置正确了的则可以直接选择“从父目录中继承”即可。

VS2010 AMD OpenCL 开发环境配置, 32位+64位

VS2010 AMD OpenCL 开发环境配置, 32位+64位

VS2010 AMD OpenCL 开发环境配置,32位+64位Posted on 2011年07月22日首先你要装好催化剂显卡驱动。

下载AMP APP SDK安装包,比如64的就叫AMD-APP-SDK-v2.4-Windows-64.exe,安装AMD APP SDK,如图0。

安装完之后重新启动。

首先知道一下安装的位置,我这里按默认装在了C:\Program Files (x86)\AMD APP\ ,如图1。

图1系统安装的时候系统已经设置了一个环境变量AMDAPPSDKROOT来指示安装的位置,可以在cmd里查看,如图2。

图2系统也已经把可执行路径加到了PATH里,这样就可以找到OpenCL的运行库。

如图3。

图3打开一个已有的OpenCL项目,或者新建一个项目。

如果新建项目,点击文件->新建,建立一个空项目。

加入一个自己写的HellowCL 之类的源码,如果没有,我这里写了一个初始化的小源码,诸位可以自行下载添加,结果如图6。

OpenclConfig.cpp图6因为安装包已经在系统的PATH路径里加入了动态链接库的路径,所以就没有必要再在VS里添加了,我们需要做的就是添加需要的包含目录和库目录,为了同时兼容32位和64位系统,需要对32位系统和64位系统差异对待。

如果你只考虑单个平台下的配置,那么只需要以下内容中相应平台的配置即可。

由于默认的环境是Win32,我们在这里添加一个x64的平台支持,前提是你安装了64位的编译器,如果你不需要64位,那么往下看即可。

1. 左侧项目名右键->属性2. 看到属性页窗口之后,点击右上方的配置管理器,3. 在配置管理器中下拉,选择<新建>4. 在键入或选择新平台中下拉,选择x64,确定以上过程如图7。

图7 一、通用配置,32位和64位都得有的,打开项目属性页:(1)左上角配置选所有配置,平台选所有平台(2)C/C++->常规->附加包含目录添加$(AMDAPPSDKROOT)include,如图8。

如何更改VS2010的[默认开发语言]默认环境设置

如何更改VS2010的[默认开发语言]默认环境设置

如何更改VS2010的[默认开发语言]默认环境设置
他最拿手的其实是VB,所以千方百计的想改回去,就是找不到地方,其实方法很简单,他的想法也没有错,只不过微软把这个修改的入口搞得实在让人意想不到(真不明白那些开发的人怎么想的)。

我们在上面的菜单里选择“工具”-->“导入导出设置”,于是修改入口出现了,选择“重置所有设置”,如图
完后我们就点下一步,再下一步,我们当初选择的列表出现了,但换了个名字,以前叫“默认环境设置”,现在叫“默认集合”,管它呢
就是它了,不用怀疑,该吧!选择你要的,完成,收工!。

opengl安装(windows)

opengl安装(windows)

opengl安装(windows)2010-08-24 23:52:59| 分类:opengl|字号订阅OpenGL 开发环境配置OpenGL 下有一些重用的辅助库,比如glut,glew等等,在windows平台下需要自己安装,因为微软为了推广自己的DX,在windows下只支持openGL 1.1版本。

你可以打开\Microsoft Visual Studio X.X\VC\include\gl\gl.h或\Microsoft SDKs\Windows\v6.1\Include\gl\gl.h 文件,查看微软默认支持的openGL版本号是:/* Version */#define GL_VERSION_1_1 1现在openGL已经发展到3.0了,因此我们需要自己下载配置这些库,在这里我们来安装glut, glee, glew这三个库,以及一些OpenGL扩展支持。

glut : 提供对窗口的封装,这是跨平台窗口的,我们就不必自己去编写烦琐的窗口代码。

glee : 方便用来判断当前系统是不是支持某项OpenGL特性,我们就不用自己去写烦琐的先取函数地址然后再判断的代码了。

glew : 因为windows默认只支持OpenGL 1.1,你要想用更高版本的OpenGL,你就需要安装它,它能自动识别你的平台所支持的全部OpenGL高级扩展函数。

1,安装glutGLUT3.7下载地址:/resources/libraries/glut/glutdlls37beta.zip点击上面的链接下载最新的GLUT,最新的GLUT版本是3.7,解压,将glut32.dll 和glut.dll 拷贝到c:\windows\system32下面,将glut32.lib 和glut.lib拷贝到VC 安装目录下的lib 目录下(如:\Microsoft Visual Studio 9.0\VC\lib\下),将glut.h拷贝到VC安装目录下的\include\gl\ 目录下(如:\Microsoft Visual Studio 9.0\VC\include\gl\下)。

MatLab和C++的混合编程-VS2010环境下的配置

MatLab和C++的混合编程-VS2010环境下的配置

MatLab和C++的混合编程VS 2010环境下的配置这几天颇费了一点精力研究matlab和C++如何混合编程,曲折坎坷,终于实现了VS2010的配置,现参照前人经验,基于自己实际情况,总结如下:1.VS的配置新建一个工程,打开视图->其它窗口->属性管理器。

就会在左侧出现如下窗口,展开工程,展开Debug|Win32,双击er,出现如下窗口:在VC++目录一栏里选择包含目录:添加如上图的include路径;库目录:添加如上图的microsoft路径;然后点击C/C++栏,常规选项:在附加包含目录下选择:如上图include路径;然后点链接器:常规:附加库目录:如图所示;连接器:输入选项:附加依赖项:输入libeng.lib;libmat.lib;libmex.lib;libmx.lib 注意:在四个附加项之间一定要用“;”隔开,否则运行的时候是无法打开的,这是和VS以前版本所不同的。

我的主要问题也就是出在这里。

附图如下:2.计算机的配置右键我的电脑->属性->高级系统设置选择高级选项卡->环境变量在系统变量里新建“matlab”变量,值为matlab安装路径。

在Path变量里添加D:\MATLAB R2012a\bin\win32路径。

如下图:这样就配置完成了,不过在matlab里还要配置默认编辑器。

在这里不做说明,网上例子很多。

说一下我自己对这个配置的理解:试看所加目录,如D:\Matlab R2012a\extern\include,这就是c++的头文件所可以包含的文件夹,D:\matlab R2012a\extern\lib\win32\microsoft,这就是C++里调用matlab的函数抑或是matlab的外接函数库。

再说一点,这个属性页可以在很多地方打开,如可以再解决资源管理器里右击工程,属性,也是同样的页面,在项目菜单栏下选择所建工程的属性也是可以的,但是据说在如上所说的地方打开或是在解决资源管理器打开配置可以针对未来所有的C++工程,而在项目菜单栏下只是针对当前工程。

如何配置OpenGL库详解

如何配置OpenGL库详解

如何配置OpenGL库详解关于OpenGL和directx的争论一直没有停息过,我并不想告诉你哪个更好,但是比较公认的是OpenGL对于一个初学者更容易理解。

下面主要说一下OpenGL的可配置(当然这很简单,但有时候库配置好了仍然出错,希望我的方法可以帮到大家)复制.dll文件(包括glu.dll,glut.dll glut32.lib opengl.dll四个文件)到系统盘c:\windows\system32中复制.h文件(包括gl.h glaux.h glext.h glu.h glut.h wglext.h六个文件)到Visual c++ 的安装目录下以我的为例C:\program files\Microsoft visual stdio\VC98\include\GL下,一般都会有GL文件夹的,没有的话新建一个就行了。

复制.lib文件(包括glaux.lib glu.lib glu32.lib glut.lib glut32.lib opengl.lib opengl32.lib 七个文件到C:\program files\Microsoft visual stdio\VC98\lib中然后就可以开始编写OpenGL程序了新建一个source Files 添加以下代码:#include<GL\glut.h>#include <stdlib.h>void display(){glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POLYGON);glVertex2f(-0.5,-0.5);glVertex2f(-0.5,0.5);glVertex2f(0.5,0.5);glVertex2f(0.5,-0.5);glEnd();glFlush();}void init(){glClearColor(0.0,0.0,0.0,0.0);glColor3f(1.0,0.0,0.0);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrtho2D(-1.0,1.0,-1.0,1.0);}void myKeyboard(unsigned char key,int x,int y){if(key==27)exit(0);}int main(int argc, char** argv){glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);glutInitWindowSize(500,500);glutInitWindowPosition(0,0);glutCreateWindow("OpenGL程序");glutDisplayFunc(display);glutKeyboardFunc(myKeyboard);init();glutMainLoop();return 0;}看看运行结果:一般来说这样就行了,但是我看到有很多网友按照上面的设置仍然不能运行出正确的OpenGL程序,出现以下错误:error LNK2001: unresolved external symbol ___glutInitWithExit@12到v.obj : error LNK2001: unresolved external symbol ___glutCreateWindowWithExit@8 Debug/大法官.exe : fatal error LNK1120: 2 unresolved externals执行 link.exe 时出错如果用的是gl.h等头文件也有可能出现以下错误:c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1152) : error C2144: syntax error : missing ';' before type 'void'c:\program files\microsoft visual studio\vc98\include\gl\gl.h(1152) : error C2501: 'WINGDIAPI' : missing storage-class or type specifiersc:\program files\microsoft visual studio\vc98\include\gl\gl.h(1152) : fatal error C1004: unexpected end of file found执行 cl.exe 时出错.如果不是库的问题就应该是路径设置那么你可以试试以下方法:(即:include和Lib文件的路径),这样就应该OK了。

用VS2010构建MASM的编程环境 - jinsonghu的专栏 - CSDN博客 - 副本

用VS2010构建MASM的编程环境 - jinsonghu的专栏 - CSDN博客 - 副本

收藏rchive/2010/06/23/5688020.aspx[2010/7/27 17:11:48]2. 添加空的Visual C++工程在Solution Explorer窗口中右键单击解决方案,选择Add->New Project。

在New Project对话框中,选则Visual C++,在右侧选中Empty Project,在下方输入项目名称。

3. 定制Visual C++工程的构建规则这一步非常重要,必须在添加源文件之前设置,否则在后续的项目属性设置对话框中将看不到MASM的设置选项。

在Solution Explorer窗口中右键单击Visual C++项目,选择Build Customizations …项,弹出Visual C++ Build Customization FIles对话框,勾选masm项,点击OK。

4. 添加源文件在Solution Explorer窗口中右键单击Source Files,选择Add->New Item项,打开Add New Ite m对话框。

在Add New Item对话框中,选中C++ Files(.cpp),在下方输入源文件名称,使用.asm后缀。

如ad dsub.asm。

5. 设置Visual C++工程的项目属性在菜单Project中选择addsub Properties…,弹出addsub Property Pages对话框。

(1)设置库路径选择Configuration Property->Linker->General,在右侧Additonal Library Directories栏中输入库路径。

如果正在学习《Inetl汇编语言程序设计》中的示例,则输入示例的安装路径,如d:\Irvine。

(2)设置包含路径选择Configuration Property->Microsoft Macro Assembler->General,在右侧Include Paths栏中输入包含路径。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VS2010下配置Openmesh+openGL
一.配置OpenGL
1首先,下载glut.rar文件,这个网上搜一下都能够找到,亦可以从opengl官网下载,/resources/libraries/glut/glutdlls37beta.zip。

2.解压后可以得到5个文件:glut.h、glut.dll、glut.lib、glut32.lib、glut32.dll。

然后,
○1把glut.h文件放在C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl文件夹下面;
○2把glut.lib、glut32.lib两个文件放在静态函数库所在的文件夹中,也就是说这两个文件要放到自己的VS2010安装目录下的VC\lib文件中。

我的vs2010安装目录是E:\vs2010\VC\lib;
○3最后把glut.dll、glut32.dll文件放在C:\windows\system32文件夹下面.
三步做完openGL的文件配置就完成了。

二.配置Openmesh
1. 在网站上下载了 OpenMesh-
2.0-RC4(这个谷歌下,网上很多,最好下载最新版本的)。

2.安装openmesh后,openmesh安装目录下的lib文件夹里面会有两个库文件
OpenMeshCore.lib 和OpenMeshTools.lib。

3.为了不设置依赖的编译目录,将这两个文件放到VS的库文件里E:\VS2010\VC\lib中。

4.打开VS2010,新建一个工程,命名如test1,然后设置test1工程的依赖项,工程属性->连接器->输入-》附加依赖项-》加入如上两个lib就可以了。

在这里要说明一下,如果从VS2010的工具—属性里面设置附加依赖属性是不行的,所以我们要自己建一个工程,然后设置这个工程的附加依赖属性,设置的地方有两处,如下:
○1项目—test1属性—VC++目录
主要设置的是包含目录和库目录,文件路径设置如图,lib和include文件夹都在自己的openmesh安装目录下。

○2项目—test1属性—链接器—输入
将openmesh安装目录下lib文件中的这两个文件(如图)的名字复制粘贴到这里来就可以了,至此openmesh文件配置完成。

网上opengl程序很多,你可以下载一个测试一下环境搭建是否成功,我亲测可以。

顺带提一下我安装的VS2010的lib文件中木有glaux.h,不知道大家是不是也是这样,这个文件可以从VC++6.0的include文件中复制过来,亦可从网上下载。

相应的glaux.lib放到VS2010的lib文件夹里就可以了。

因为是新手,上面的环境搭建也借鉴了一下别人的,只是网上的太乱了,我作了一下总结,供新人参考一下,如有不足的或者不对的地方,大家指正下哈,我再修改。

相关文档
最新文档