• 0

OpenGL: glGetString(GL_VERSION)


Question

Okay, I'm starting to learn OpenGL and I'm playing around with the syntax. However, all I want to do here is to simply display what OpenGL version I have running...I know there are programs out there that can tell me, but I want to write my own very basic program.

After hours of searching google, all I can find out is that I need the following command:

glGetString(GL_VERSION);

But what am I doing wrong?

Below is a quick program and I don't know why it's not compiling. One of the errors messages is:

c:\Documents and Settings\DjmUK\My Documents\Visual Studio Projects\Ogl_01\Ogl_01\Test_03.cpp(4): error C2440: 'initializing' : cannot convert from 'int' to 'const GLubyte *'

Any help or a very simple program like below would be greatful.

Thanks in advance.

#include <windows.h>

#include <GL/gl.h>

#include <stdio.h>

void main()

{

printf("Version=", glGetString(GL_VERSION));

}

Link to comment
https://www.neowin.net/forum/topic/222661-opengl-glgetstringgl_version/
Share on other sites

6 answers to this question

Recommended Posts

  • 0
  DjmUK said:
Okay, I'm starting to learn OpenGL and I'm playing around with the syntax. However, all I want to do here is to simply display what OpenGL version I have running...I know there are programs out there that can tell me, but I want to write my own very basic program.

After hours of searching google, all I can find out is that I need the following command:

glGetString(GL_VERSION);

But what am I doing wrong?

Below is a quick program and I don't know why it's not compiling. One of the errors messages is:

c:\Documents and Settings\DjmUK\My Documents\Visual Studio Projects\Ogl_01\Ogl_01\Test_03.cpp(4): error C2440: 'initializing' : cannot convert from 'int' to 'const GLubyte *'

Any help or a very simple program like below would be greatful.

Thanks in advance.

#include <windows.h>

#include <GL/gl.h>

#include <stdio.h>

void main()

{

printf("Version=", glGetString(GL_VERSION));

}

printf("Version=%s", glGetString(GL_VERSION));

  • 0

Then I must be doing something wrong, I added your line into the program and the following 2 errors appear.

OGL_01 fatal error LNK1120: 1 unresolved externals

OGL_01 error LNK2001: unresolved external symbol "unsigned char const * __stdcall glGetString(unsigned int)" (?glGetString@@$$J14YGPBEI@Z)

Specs:

GeForce 2 Pro (Drivers have OpenGL 1.5.2)

WinXP Pro - SP2

Is it a case of my opengl header files being wrong, if so how would I fix the problem :( (this is soooo wierd). I'm gonna' uninstall .NET 2003 and reinstall V6.0, maybe I got the settings mixed up.

  • 0

Looks like I'll have to stick with VS7 (.NET), because I uninstalled VS7 then rebooted and somehow VS6 will NOT install. The most likely reason for this is because SP2 is incompatible.

So, I'm reinstalling VS7 and I'll then try that new line you provided as soon as I've configured all the dependencies (includes, headers & directories etc.).

I'll let you know how it turns out. Won't be long now.

  • 0

All sorted, it was my dependencies - however, I get the result "Version=(NULL)". Even with:

printf("Version=%s", (char*)glGetString(GL_VERSION));

printf("Version=%s", (char*)glGetString(GL_EXTENSIONS));

printf("Version=%s", (char*)glGetString(GL_RENDERER));

I receive the same output.

  • 0
  DjmUK said:
All sorted, it was my dependencies - however, I get the result "Version=(NULL)". Even with:

printf("Version=%s", (char*)glGetString(GL_VERSION));

printf("Version=%s", (char*)glGetString(GL_EXTENSIONS));

printf("Version=%s", (char*)glGetString(GL_RENDERER));

I receive the same output.

Odd, perhaps adding const to it will fix it. Otherwise I'm not sure.

printf("Version=%s", (const char*)glGetString(GL_VERSION));

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Microsoft: Edge performs better than Google Chrome on Windows in ad blocking and more by Sayan Sen Recently, Google put out a performance report for its Chrome web browser explaining how the changes it made to memory management and caching mechanisms managed to make it the fastest it has ever been. Google is not the only one to do it recently, as Microsoft too made similar claims about performance boosts earlier in the year in April. If you were trying to pick between the two, Microsoft is trying to make it easy for you to decide. In a recent blog post titled "Microsoft Edge browser: The fast, smart alternative to Chrome," the tech giant has laid out all the reasons you should pick its browser over Google Chrome. As pointed out in our first paragraph, performance is something these companies often try to brag about, and for good reasons, because people do want to get a snappier experience. This could explain why Mozilla's Firefox has been left behind over time in terms of market share, as it has not been able to keep up with Chromium-based browsers in the performance department. Microsoft says that Edge is better for your Windows PC than Google's Chrome, as it is a "Microsoft product" that "integrates closely with Microsoft Windows," which helps with "performance benefits." Besides that, the Redmond company also points out other "speed and efficiency" features of Edge, like sleeping tabs that helped save 'over 7 trillion megabytes of memory' in 2024. And Edge is also said to "help with smooth performance so that add-ons like Microsoft Translator, ad blockers, and password managers work efficiently." Microsoft adds how the "optimized architecture of Edge helps with lower CPU load and overall resource consumption, providing a smooth experience, particularly on low-spec devices" and also how its "efficient resource allocation helps minimize slowdowns." Aside from performance, productivity is another area where Microsoft says Edge excels. That is thanks to Microsoft 365 integration and other AI tools. In the end of the blog post, Microsoft suggests that this is the right time to switch to Edge from Google Chrome. You can find the post here on Microsoft's official website.
    • At some point, hardware becomes obsolete and we cant blame vendors for dropping support. Much of the models dropped, run Intel hardware which means they can install something else on the device if they truly want to keep using it.
    • Well, that was fun: PS C:\WINDOWS\system32> Install-Script -Name Set-InetpubFolderAcl WARNING: Unable to download from URI 'https://go.microsoft.com/fwlin...627338&clcid=0x409' to ''. WARNING: Unable to download the list of available providers. Check your internet connection. PackageManagement\Install-PackageProvider : No match was found for the specified search criteria for the provider 'NuGet'. The package provider requires 'PackageManagement' and 'Provider' tags. Please check if the specified package has the tags. At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7468 char:21 + ... $null = PackageManagement\Install-PackageProvider -Name $script:N ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (Microsoft.Power...PackageProvider:InstallPackageProvider) [Install-PackageProvider], Exception + FullyQualifiedErrorId : NoMatchFoundForProvider,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackageProvider PackageManagement\Import-PackageProvider : No match was found for the specified search criteria and provider name 'NuGet'. Try 'Get-PackageProvider -ListAvailable' to see if the provider exists on the system. At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7474 char:21 + ... $null = PackageManagement\Import-PackageProvider -Name $script:Nu ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (NuGet:String) [Import-PackageProvider], Exception + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.ImportPackageProvider WARNING: Unable to download from URI 'https://go.microsoft.com/fwlin...627338&clcid=0x409' to ''. WARNING: Unable to download the list of available providers. Check your internet connection. PackageManagement\Get-PackageProvider : Unable to find package provider 'NuGet'. It may not be imported yet. Try 'Get-PackageProvider -ListAvailable'. At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7478 char:30 + ... tProvider = PackageManagement\Get-PackageProvider -Name $script:NuGet ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Microsoft.Power...PackageProvider:GetPackageProvider) [Get-PackageProvider], Exceptio n + FullyQualifiedErrorId : UnknownProviderFromActivatedList,Microsoft.PowerShell.PackageManagement.Cmdlets.GetPackageProvider Install-Script : NuGet provider is required to interact with NuGet-based repositories. Please ensure that '2.8.5.201' or newer version of NuGet provider is installed. At line:1 char:1 + Install-Script -Name Set-InetpubFolderAcl + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: ( [Install-Script], InvalidOperationException + FullyQualifiedErrorId : CouldNotInstallNuGetProvider,Install-Script
    • Because Apple has never discontinued Mac models before now?
  • Recent Achievements

    • Week One Done
      abortretryfail earned a badge
      Week One Done
    • First Post
      Mr bot earned a badge
      First Post
    • First Post
      Bkl211 earned a badge
      First Post
    • One Year In
      Mido gaber earned a badge
      One Year In
    • One Year In
      Vladimir Migunov earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      488
    2. 2
      +FloatingFatMan
      257
    3. 3
      snowy owl
      247
    4. 4
      ATLien_0
      222
    5. 5
      +Edouard
      191
  • Tell a friend

    Love Neowin? Tell a friend!