GLUT

2010-02-02 12 views
8

के साथ एक ओपनजीएल विंडो केंद्र करें मेरे पास एक openGL विंडो है जो 640x480 है जिसे मुझे स्क्रीन के बीच में केंद्र करने की आवश्यकता है। मैंने पहले इस्तेमाल किया था:GLUT

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)" ([email protected]@[email protected]) referenced in function "int __cdecl main(int,char * *)" ([email protected]@[email protected]) 
1>Project1.obj : error LNK2019: unresolved external symbol "extern "C" int __stdcall GetSystemMetrics(int)" ([email protected]@[email protected]) referenced in function "int __cdecl main(int,char * *)" ([email protected]@[email protected]) 
1>C:\Users\My Computer\Documents\School Stuff\CS445\Project1\Debug\Project1.exe : fatal error LNK1120: 2 unresolved externals 

किसी ने मदद करें। यह मेरे लिए बहुत परेशान और निराशाजनक है क्योंकि मुझे ओपनजीएल और जीएलयूटी के बारे में बहुत कुछ पता नहीं है।

उत्तर

19

इसके अलावा, बजाय जोड़ने user32.lib आप केवल भरमार का उपयोग कर ऐसा कर सकते हैं की:

glutGet(GLUT_SCREEN_WIDTH) // returns Screen width 

और

glutGet(GLUT_SCREEN_HEIGHT) // returns Screen height 

क्यों विंडोज पर निर्भर करते हैं जब आप पार मंच हो सकता है?

इसलिए, अपने कोड दिखेगा:

glutInitWindowPosition((glutGet(GLUT_SCREEN_WIDTH)-640)/2, 
         (glutGet(GLUT_SCREEN_HEIGHT)-480)/2); 
+0

धन्यवाद! मैंने पहले इसका उपयोग करने की कोशिश की थी और किसी तरह से बुरी तरह विफल रहा था लेकिन यह आपके लिए धन्यवाद इस कोड के साथ फिर से काम कर रहा है। –

1

आपको यह सुनिश्चित करना होगा कि आप User32.lib के खिलाफ लिंक कर रहे हैं, स्थिर पुस्तकालय जहां GetSystemMetrics() परिभाषित किया गया है। अपनी प्रोजेक्ट सेटिंग्स खोलें और सुनिश्चित करें कि User32.lib उन सभी .libs के बीच सूचीबद्ध है जिन्हें आप लिंक कर रहे हैं।

+0

कहां है विज़ुअल सी में परियोजना सेटिंग्स ++? मैंने वास्तविक कोड को छोड़कर कुछ भी गड़बड़ नहीं की है, इसलिए यदि यह काम करने से पहले काम करता है तो यह अचानक बंद हो जाएगा? –

+0

यदि आप ओपनजीएल विंडो को केंद्रित करने का एक वैकल्पिक तरीका जानते हैं तो मैं भी इसकी सराहना करता हूं। जो भी काम करेगा ठीक है, बस यह काम करता है और संकलक त्रुटि मेरे ज्ञान से परे है। –

+0

ठीक है मैंने पाया कि परियोजना गुणों और लिंकर को कैसे प्राप्त किया जाए, लेकिन User32.lib कहां स्थित है? –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^