Winapi 我在Windows API中使用了哪些OpenGL库?

Winapi 我在Windows API中使用了哪些OpenGL库?,winapi,opengl,Winapi,Opengl,我在使用windows api编程时遇到了一个问题。我想在我的项目中使用OpenGL的着色器功能。我将GLFW包含在我的项目中并将其链接,但出现了此错误 warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library 我应该在Windows API中使用GLWF,还是应该完全使用其他东西?首先,您为什么要使用Windows API?如果您使用的是OpenGL,那么像

我在使用windows api编程时遇到了一个问题。我想在我的项目中使用OpenGL的着色器功能。我将GLFW包含在我的项目中并将其链接,但出现了此错误

warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library

我应该在Windows API中使用GLWF,还是应该完全使用其他东西?

首先,您为什么要使用Windows API?如果您使用的是OpenGL,那么像GLFW这样的多平台API将是明智的,因为它可以为您处理Windows API的内容。如果您想使用Windows API,那么这是您的选择,GLFW也是如此。但是记住不要把两者混在一起,否则会有冲突。在我看来,如果您使用GLFW,您的代码将可移植到其他操作系统。

您遇到的问题是由于您试图使用不同的CRT链接GLFW二进制文件,而不是链接器想要链接到您的程序。特别是GLFW的brew,您似乎是使用Visual Studio 6或更早版本的VC++编译器或MinGW编译器构建的

由于现代的MSVC++编译器会拒绝与系统MSVCRT链接,而不会跳出一些严重的障碍(因此,您必须使用Windows DDK编译器),因此您可以选择以下两个选项:

  • 获取GLFW的DLL构建,CRT已静态链接到其中
  • 使用您现在使用的编译器构建GLFW的DLL版本
  • 构建GLFW的静态链接库变体,并将其静态链接到您的程序(静态库构建通常不绑定到特定的CRT)

我目前非常喜欢glew,并以依赖于操作系统的方式创建我的窗口和opengl上下文-它可以移植到您的窗口/上下文创建端口。有人可能想编写一个GUI程序,使用opengl显示内容,并使用windows API实现按钮、复选框、菜单等控件,等内容区域之外的内容。GLFW不提供这种功能。从技术上讲,您可以创建按钮、复选框和菜单,尽管这需要更多的编程。其中,您最好使用Qt,因为它与OpenGL配合得很好。Windows API和OpenGL就像把狮子和老鼠和谐地放在同一个房间里。当我使用glew时,我是否也必须使用glut之类的东西?@Poriferous:OP的问题与直接使用Windows API无关。这是一个链接问题,特别是库版本不匹配,这是由于GLFW二进制OP与链接器希望用于自己程序的不同CRT链接所致。这并没有解决问题,也没有提供解决方案。给出的建议并不能解决眼前的问题:正如@datenwolf已经指出的那样,这是一个链接问题。