2012-03-04 7 views
8

मैं Visual C++ 2010 का उपयोग कर एक परियोजना बना रही हूँ विंडोज 7 मैं ATL पुस्तकालय उपयोग करने की आवश्यकता के तहत, वास्तव में मैं विंडोज WDK (संस्करण 7600.16385.1) विशेष रूप से मैं का उपयोग कर स्थापित निम्नलिखित WDKATL पुस्तकालय: चेतावनी LNK4254 और LNK4078

से पुस्तकालयों
  • setupapi.lib
  • atls.lib
  • atlsd.lib
  • atl.lib
  • atlthunk.lib
  • 012,351,

मेरी कोड संकलन मैं निम्नलिखित चेतावनी है:

atls.lib (stdafx.obj): चेतावनी LNK4254: खंड 'ATL' (50,000,040) विभिन्न विशेषताओं के साथ '.rdata' (40,000,040) में विलय कर दिया

atls.lib (stdafx.obj): चेतावनी LNK4078: कई 'ATL' वर्गों अलग विशेषताओं के साथ पाया (40301040)

किसी को भी पता है कि यह कैसे तय करने के लिए? मैं संभावित मेमोरी लीक से चिंतित हूं या अपने डेटा तक पहुंचने में कुछ समस्या है। धन्यवाद

+1

क्या आप विजुअल स्टूडियो के एक्सप्रेस संस्करण का उपयोग कर रहे हैं? सभी उल्लिखित libs को जोड़ने के लिए कोई विशिष्ट कारण? 'एटीएलएस 'और' एटीएसडीडी 'एक ही लाइब्रेरी के रिलीज और डीबग संस्करण हैं, आपको दोनों की आवश्यकता नहीं है। –

+0

@RomanR। आपको atls.lib और atlsd.lib दोनों का उपयोग करने के बाद से इसे उत्तर के रूप में पोस्ट करना चाहिए, निश्चित रूप से त्रुटियों का कारण है। –

उत्तर

9

मेरे पास विजुअल स्टूडियो 2010 एक्सप्रेस संस्करण और एटीएल डब्ल्यूडीके 7.1 से लिया गया वही चेतावनी थी। ऐसा लगता है कि एटीएल libs आपके प्रोजेक्ट atlbase.h से अलग विकल्पों के साथ बनाया गया था। मैंने सेटिंग्स को atlbase.h

#pragma section("ATL$__a", read, shared) => #pragma section("ATL$__a", read) 
#pragma section("ATL$__z", read, shared) => #pragma section("ATL$__z", read) 
#pragma section("ATL$__m", read, shared) => #pragma section("ATL$__m", read) 

और चेतावनियां चली गईं।

+2

मेरे लिए काम किया। +1 –

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