14

画面の中央に配置する必要がある640x480のopenGLウィンドウがあります。以前に使用したもの:

glutInitWindowPosition((GetSystemMetrics(SM_CXSCREEN)-640)/2,
                       (GetSystemMetrics(SM_CYSCREEN)-480)/2);

うまくいった。

しかし今、私がコンパイルすると突然...

Linking...
1>Project1.obj : error LNK2028: unresolved token (0A000372) "extern "C" int __stdcall GetSystemMetrics(int)" (?GetSystemMetrics@@$$J14YGHH@Z) referenced in function "int __cdecl main(int,char * *)" (?main@@$$HYAHHPAPAD@Z)
1>Project1.obj : error LNK2019: unresolved external symbol "extern "C" int __stdcall GetSystemMetrics(int)" (?GetSystemMetrics@@$$J14YGHH@Z) referenced in function "int __cdecl main(int,char * *)" (?main@@$$HYAHHPAPAD@Z)
1>C:\Users\My Computer\Documents\School Stuff\CS445\Project1\Debug\Project1.exe : fatal error LNK1120: 2 unresolved externals

誰か助けてください。私はOpenGLとGLUTについてあまり知らないので、これは私にとって非常に迷惑でイライラします。

4

2 に答える 2

25

また、user32.lib をリンクする代わりに、glut のみを使用してリンクすることもできます。

glutGet(GLUT_SCREEN_WIDTH) // returns Screen width

glutGet(GLUT_SCREEN_HEIGHT) // returns Screen height

クロスプラットフォームに対応できるのに、なぜ Windows に依存するのでしょうか。

したがって、コードは次のようになります。

glutInitWindowPosition((glutGet(GLUT_SCREEN_WIDTH)-640)/2,
                       (glutGet(GLUT_SCREEN_HEIGHT)-480)/2);
于 2010-02-02T05:07:56.783 に答える
1

GetSystemMetrics()が定義されている静的ライブラリであるUser32.libに対してリンクしていることを確認する必要があります。プロジェクト設定を開き、リンク先のすべての.libの中にUser32.libがリストされていることを確認します。

于 2010-02-02T04:50:31.713 に答える