2011-10-20 12 views
12

मैं विजुअल स्टूडियो 2010 प्रो में पुराने सीपीपी एमएफसी प्रोजेक्ट को संकलित करने की कोशिश कर रहा हूं।त्रुटि C2733 अधिभारित फ़ंक्शन 'फ़ंक्शन' की दूसरी सी लिंकेज की अनुमति नहीं है

यह dll जो Labview का उपयोग कर संकलित किया गया है का उपयोग करता है, और मैं यह जानकारी जोड़ने कर रहा क्योंकि मैं क्या त्रुटि संदेश उत्पन्न कर रहा है पता नहीं है ..

त्रुटि संदेश से अधिक फ़ंक्शन पर दिखाई दें, सभी एक ही त्रुटि प्रकार ।

error C2733: second C linkage of overloaded function 'function name' not allowed. 

'समारोह का नाम' में शामिल हैं: 'StrCatW', 'StrCmpNW', 'StrCmpW', 'StrCpyNW', और 'StrCpyW'

मैं वेब पर एक similar case पाया।

हालांकि लिंक में सुझाव मेरे मामले में हल नहीं हुआ है और मुझे अभी भी वही त्रुटि संदेश दिखाई देता है।

किसी भी व्यक्ति की मदद करने की कोशिश करने के लिए अग्रिम धन्यवाद।

+1

ऐसा लगता है कि 'स्ट्रैकैट', 'स्ट्रैम्पएनडब्ल्यू' इत्यादि जैसे कार्यों को एक से अधिक बार जोड़ा गया है या वे एक से अधिक फाइलों में शामिल हैं * बिना * इनलाइन के रूप में घोषित किए जा रहे हैं। –

+1

@ थॉमस मैथ्यूज त्रुटि यह नहीं कह रही है कि एक ही कार्य की एक से अधिक परिभाषाएं हैं, बल्कि एक ही नाम के साथ एक से अधिक ओवरलोड हैं। इस मामले में समस्या यह है कि सी लिंकेज के कारण, नाम मैंगलिंग अक्षम है, और आपको अलग-अलग कार्यों के संदर्भ में सटीक उसी नाम के साथ प्रतीक नहीं होना चाहिए। –

उत्तर

14

मुझे एमएफसी के साथ कोई अनुभव नहीं है, वैसे भी मैं जवाब देने का प्रयास करूंगा। ऐसा त्रुटि संदेश तब प्रकट होता है जब extern "C" फ़ंक्शन को पैरामीटर के एक अलग सेट के साथ घोषित किया जाता है। उदाहरण के लिए:

extern "C" int myfunc(int); 
extern "C" int myfunc(char); 

आपके मामले में, दो घोषणाओं शायद char* से संबंधित हैं:

extern "C" char* StrCatW(char*, char*); 
extern "C" wchar_t* StrCatW(wchar_t*, wchar_t*); 

अपने समाधान में यूनिकोड समर्थन बंद करने का प्रयास: मैं लगता है, अगर dll वास्तव में पुराना है, यह किसी भी तरह से StrCatWchar* तर्कों के साथ घोषणा करता है, कुछ अन्य घोषणाओं के साथ संघर्ष कर रहा है।

अगर वह मदद नहीं करता है, preprocessed उत्पादन पर (/E संकलक स्विच, जहाँ तक मैं याद) बारी - यह होगा उत्पादन एक बहुत बड़ी फ़ाइल, तो यह में StrCatW के लिए देखो, हो सकता है यह आपको कुछ सुराग पर दे देंगे क्या हो रहा है।

+0

सुझावों के लिए धन्यवाद .. यूनिकोड समर्थन बंद कर दिया और काम नहीं किया है इसलिए मैं प्रीप्रोसेस्ड आउटपुट को आजमा रहा हूं और देख रहा हूं कि –

+0

पर क्या चल रहा है हाय जैसे ही मैं प्रीप्रोसेस (/ पीएस वीएस 2010 में) चालू करता हूं, मुझे LINK त्रुटि दिखाई देती है stdafx.obj के लिए पूछना, जो मेरी स्रोत फाइल सूची में पहली सीपीपी की ओबीजे फ़ाइल है। मैंने एमएसडीएन त्रुटि स्पष्टीकरण पाया जो आपके द्वारा सुझाए गए कार्यों से संबंधित लगता है .. http://msdn.microsoft.com/en-us/library/5z9es6ec(v=vs.71).aspx –

+0

मैंने समस्या से हल करके समस्या हल की हैडर त्रुटि 'दूसरी सी लिंकेज' –

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

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