
Solutions:
1. Add #define GLUT_DISABLE_ATEXIT_HACK before #include
2. Compile with Visual Studio 2012(V110) environment

the original is because the OpenGL Context can only be one thread has at the same time, in the creation of OpenGL window was occupied by the main thread. The solution is to use the function wglMakecurrent (HDC HDC,HGLRC HGLRC), which can associate the OpenGL Context with the thread calling the function: add wglMakecurrent (NULL,NULL) to the main thread, unassociate it, and then use wglMakecurrent (HDC,HGLRC) at the beginning of the child thread to get the Context.
I am in a story about a multithreaded OpenGL English information, you may have seen the original mainly solve with two threads at the same time operating OpenGL: a rendering, create a display list. The way he uses it is that the render thread gets the Context at render time, releases it when it’s done, and another thread takes up the Context… And so on.
I reckon I can even use wglMakeCurrent switching, implement multiple threads at the same time to drawing on a window! Not exactly at the same time, of course, but in turns. This is not very efficient, though, except to prevent the user interface thread from being blocked by too much graphing.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
= glgentextuples (1, (UINT*)& M_nTexID = m_nTexID = m_nTexID = m_nTexID = m_nTexID = m_nTexID
the original is in the child thread of hDC and hRC, and then the child thread running through return hDC and hRC, don’t know what I’m saying you understand don’t understand, don’t understand can you give me a message. Ha ha

Configuretton so that CMAKE can read the required Settings and source code. Then we must choose the generator of the project, and because we are using the Visual Studio 2019, so we will select the 16 code> option Visual Studio (Visual Studio 2019, also known as Visual Studio (16) (4) the CMake will display possible build options to configure the generated library, click on the Generate code>, The resulting project file will be generated in your buildlder. 
4. You can now find a file named glfw.sln the buildlder and open it using Visual Studio 2019. Because CMake generates a project file that already contains the correct configuration Settings, we just need to build the solution. CMake should have configured the solution automatically so that it can compile to a 64-bit library. Now click Build the solution. This will give us a compiled library file glfw3.libich can be found in build/ SRC /Debugmed. Once the library is generated, we need to make sure that the IDE knows where to find the library and the inclusion files for OpenGL programs.
5. We create a new folder in the d-root directory to hold all the header files/libraries from the third party libraries, which can then be referenced from the IDE/compiler. For example, create the directory "OpenGlResources" under disk D, which contains Libsd i>de folders>here we store all the library files and headers for the OpenGL project, respectively. The requirement now is that each time we create a new project, we have to tell the IDE where to find these directories. Put the produced glfw3.lible into "D:\OpenGLResources\Libs".

Project configuration process
1. First, let's open Visual Studio and create a new project. If multiple options are provided, select C ++ and use Empty Projectdon't forget to give your Project an appropriate name). Since we will be doing everything in 64-bit mode, and the project is 32-bit by default, we need to change the drop-down menu at the top next to Debug from x86 to x64:

2. In Solution Explorer, right-click on the project and add a C++ file, which can be named "main.cpp".
Right-click on a project name in Solution Explorer and go to a VC++ Directoriesgure:

Add the "Libs" and "Include" Directories in "D:\OpenGLResources" for Include Directories and Library Directories, respectively. As shown in the figure:

Here, you can add as many additional directories as you need, and from then on, the IDE will also search for these directories when it searches libraries and header files. Once Includentains folders in GLFW, you can find all header files for GLFW by Include &>; GLFW/.. > code>. The same goes for library directories.
4. Because the VS now can find all the necessary documents, so we can finally through to the would code> TAB and GLFW link to project the Input code> :

Then, to link to the library, you must specify the name of the library for the linker. Because the library name is glfw3. Lib code>, we add it to the Additional Dependencies code> field (manually or using the & lt; Edit.. > option), and from this point on, GLFW will be linked at compile time. In addition to GLFW, we should also add a link entry openGL32.lib to the OpenGL library. If you are using Windows, the OpenGL library engl32.lib c> with the Microsoft SDK and is installed by default when you install Visual Studio. Since this chapter uses the VS compiler and is on Windows, we will add opengl32.lib the linker Settings. Note that the 64-bit equivalent to the OpenGL library is called openGL32.lib.
This completes the setup and configuration of GLFW.
5. Go to the Glad Web service, make sure the language is set to C ++ and select the OpenGL version of at least 3.3 in the "API" section (this is the version we will be using; Higher versions are also available). Also, make sure that the configuration file is set to Core and the Build Loader option is checked. Ignore the extension for a moment, and then click Build to generate the result library file.
Glad should now have provided you with a ZIP file containing two include folders and a glad.cle. Copy both include folders (gladd k> /code>) into> include (s) directory, that is, "D:\OpenGLResources\include". Then add the glad.cle to your project.
After completing the above steps, you should be able to add the following include directive at the top of the "main.cpp" file:
#include < glad/glad.h>
The Compile button should not give you any errors.
The OpenGL library is not well configured, so we will configure it. The OpenGL library is not well configured. Before, the configuration libraries were all header files, and the libraries were a bunch of things to set up. Microsoft has come up with a great solution called NuGet
opens in the browse search nupengl, will find the following two packages
respectively selected two packages, click “install” on the right side. After installing both packages successfully, you will see that there are two more folders in the Packages folder under the project folder, which are the packages that we imported. Now you can use OpenGL functions by adding the corresponding header files in the program. There is no need to configure them in the project properties.
Download Directory:
https://download.csdn.net/download/boyinc0de/11171372
in

The following:

Include directory corresponding to downloaded files, unzipped include folder
The library directory corresponds to the downloaded files and the unzipped Library folder
VS2019 may report an error.
1> Glaux. Lib (tk.obj) : error LNK2019: Cannot resolve external symbol _sscanf, which is referenced in the function _GetRegistrySysColors@8
1> Glaux. Lib (tk.obj) : error LNK2019: Unresolvable external symbol _vsprintf, which is referenced in the function _PrintMessage
VS2015 compilation will cause this problem, the solution is in the project properties ->; The linker – & gt; Input – & gt; Add a dependency legacy_stdio_defines.lib to the attached dependency;
Here’s a reference:
https://blog.csdn.net/qqsqqsqqs318/article/details/58156094
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
In later experiments, we used the GLUT library, and I put the configuration procedure in the following:
https://www.jianshu.com/p/be32da974d8c
PS: I just put the.dll file in the Debug folder of the project where the.exe is located. I don’t want to copy everything to the system files





ah Cannot open: No such file or directory







RXJava code>, RxAndroid code>, Retrofit code> to support development response type, and refactor the code, refactoring everything but in running an Java lang. NoClassDefFoundError code> this error, and in a few test machine shows the name of the class is different also, For example, on MI4, there is no Handler, and on Huawei, there is no OKHttputils class. This is very confusing. After searching Google, we can't find the problem, but on another Samsung test machine, there is no problem, and finally we find that Multidex is the problem.
Some third party libraries were added during the refactoring, which pushed the number of methods in the entire Android application beyond 65535. The following error should occur when packaging
java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536
at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:501)
at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:282)
at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:490)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:167)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:188)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
multiDexEnabled true z multiDexEnabled true defaultConfig
z multiDexEnabled true Automatically when a method is more than 65535 hit two Dex package named classes. Dex code> classes2. Dex code>, some methods were scored the second Dex package, namely the classes2. Dex code>, resulted in 5.0 the following models can't run the error.
Here's the solution:
1. defaultConfigcode> m>dexEnabled true is used>enable MultiDex
2. is added in the dependence on the compile 'com. Android. Support: multidex: 1.0.1' code> support package for 5.0 the following systems
3. If your project already contains the Application class, then let it inherits. Android support. Multidex. MultiDexApplication class, if your Application has inherited the other classes and do not want to do change, so there's another way of using, overwrite attachBaseContext () method:
public class MyApplication extends FooApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
First of all, the error is most likely caused by the incorrect way the request was made. SpringBoot has three common request methods: @requestmapping, @getmapping, and @postmapping.
**
**
* *
again turn head to see this error, literally does not support a get request, see your own annotations to project, it was the wrong
I am a visit by enter the URL address bar, the default is the get method, the annotation to @ RequestMapping is ok, the error is solved.