2012-04-14 24 views
5

विजुअल स्टूडियो एक्सप्रेस 2010 का उपयोग करके मैंने विंडोज़ एप्लिकेशन और खाली परियोजना विकल्पों के साथ एक विंडोज प्रोजेक्ट बनाया। मैं तो MSDN विंडोज ट्यूटोरियल से following code snippet की कोशिश की:विंडोज प्रोग्रामिंग ट्यूटोरियल में अनसुलझा बाहरी प्रतीक __RTC_ *

#include <windows.h> 
#include <shobjidl.h> 

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow) 
{ 
    HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | 
     COINIT_DISABLE_OLE1DDE); 
    if (SUCCEEDED(hr)) 
    { 
     IFileOpenDialog *pFileOpen; 

     // Create the FileOpenDialog object. 
     hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL, 
       IID_IFileOpenDialog, reinterpret_cast<void**>(&pFileOpen)); 

     if (SUCCEEDED(hr)) 
     { 
      // Show the Open dialog box. 
      hr = pFileOpen->Show(NULL); 

      // Get the file name from the dialog box. 
      if (SUCCEEDED(hr)) 
      { 
       IShellItem *pItem; 
       hr = pFileOpen->GetResult(&pItem); 
       if (SUCCEEDED(hr)) 
       { 
        PWSTR pszFilePath; 
        hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath); 

        // Display the file name to the user. 
        if (SUCCEEDED(hr)) 
        { 
         MessageBox(NULL, pszFilePath, L"File Path", MB_OK); 
         CoTaskMemFree(pszFilePath); 
        } 
        pItem->Release(); 
       } 
      } 
      pFileOpen->Release(); 
     } 
     CoUninitialize(); 
    } 
    return 0; 
} 

मैं गया निम्न त्रुटियों:

1>------ Rebuild All started: Project: Test05, Configuration: Debug Win32 ------ 
1> Test05.cpp 
1>Test05.obj : error LNK2019: unresolved external symbol @[email protected] 
referenced in function [email protected] 
1>Test05.obj : error LNK2019: unresolved external symbol __RTC_CheckEsp referenced in 
function [email protected] 
1>Test05.obj : error LNK2001: unresolved external symbol __RTC_Shutdown 
1>Test05.obj : error LNK2001: unresolved external symbol __RTC_InitBase 
1>LINK : error LNK2001: unresolved external symbol _wWinMainCRTStartup 

क्या यहाँ हो रहा है? सबसे अच्छा मैं wWinMain के साथ कुछ करने के लिए कह सकता हूं, लेकिन इसे सीधे साइट से कॉपी किया गया है।

प्रोग्रामिंग सीखने से संकलक मेरे लिए कहीं अधिक परेशानी प्रतीत होते हैं। मैंने कुछ अन्य लोगों (कोडब्लॉक अधिकतर) की कोशिश करने के बाद विजुअल सी ++ पर फैसला किया, लेकिन चूंकि विज़ुअल सी ++ में सबसे अधिक समर्थन (या कम से कम उपयोगकर्ताओं का बहुमत) लगता है, मुझे लगा कि यह कहीं भी कहीं से भी बेहतर नहीं था क्योंकि वे सभी इतने अनजान हैं एक शुरुआत

+0

क्या आप इसे हल करने में सक्षम थे? –

उत्तर

0

ऐसा लगता है कि आप रनटाइम लाइब्रेरीज़ के एक अलग संस्करण को फिर से जोड़ रहे हैं जो आप संकलित कर रहे हैं।

कृपया सुनिश्चित करें कि आपके पास विजुअल स्टूडियो का केवल एक संस्करण स्थापित है और पथ में है।

यदि आपके पास एक से अधिक संस्करण हैं, तो यह देखने के लिए कि क्या इससे कोई प्रभाव पड़ेगा, अस्थायी रूप से अन्य विजुअल स्टूडियो इंस्टॉलेशन की रूट निर्देशिकाओं का नाम बदलने का प्रयास करें।

+0

मैंने वीएस को पुनर्स्थापित किया, साथ ही साथ एसडीके (अब संस्करण 7.1) (जहां मुझे ShObjIdl.h के लिए फ़ाइल मिली है) और मुझे निम्न त्रुटि मिल रही है: 1> ------ पुनर्निर्माण सभी शुरू: परियोजना: जेनेरिकविंडोज टेस्टिंग , कॉन्फ़िगरेशन: डीबग Win32 ------ 1> सी: \ प्रोग्राम फ़ाइलें (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ प्लेटफ़ॉर्म \ Win32 \ Microsoft.Cpp.Win32.Targets (147,5): त्रुटि: आवश्यक फ़ाइल "" गायब है। ========== सभी को पुनर्निर्माण: 0 सफल, 1 असफल, 0 छोड़ा गया ========== – Vertro

0

मैं उस कोड स्निपेट को कॉपी और पेस्ट करने के बजाय लिंक here से पूरा कोड नमूना डाउनलोड करूंगा। प्रोजेक्ट फ़ाइलों में महत्वपूर्ण कंपाइलर/लिंकर सेटिंग्स हो सकती हैं जो वहां नहीं दिखाए जा रहे हैं। नमूना एक वीएस 2008 समाधान है, लेकिन मैं इसे 2010 समाधान में अपग्रेड करने और इसे बनाने में सक्षम था। हालांकि, यह मुझे 'घातक लिंकर त्रुटि: नहीं मिला' दे दी है kernel32.lib '' जब मैं वी.एस. 2008 में इसे बनाने की कोशिश की

+0

जब मैं फ़ाइल से डाउनलोड करता हूं तो यह किसी भी अलग तरीके से कार्य नहीं करता प्रतीत होता है जगह। मेरे लिए वही त्रुटियां – Vertro

4

_RTC_xxx प्रतीकों जोड़ा जब कर रहे हैं 'बुनियादी रनटाइम चेकों' का इस्तेमाल किया जाता है; उन्हें अक्षम करने के लिए, आप प्रोजेक्ट गुणों पर जा सकते हैं, और कॉन्फ़िगरेशन गुण> सी/सी ++> सभी विकल्प> बेसिक रनटाइम चेक विकल्प को 'डिफ़ॉल्ट' पर सेट कर सकते हैं। हालांकि, जैसा कि अन्य उत्तरों में बताया गया है, ऐसा लगता है कि आपके पास सी-रनटाइम पुस्तकालयों में कोई मेल नहीं है।

+0

बस साझा करना: आपकी टिप के बाद मैंने डेल्फी टोक्यो (32/64) से उत्पन्न मेरे EXE में एक छोटी लाइब्रेरी को लिंक किया और यह एक आकर्षण की तरह काम करता था। दोस्त को साझा करने के लिए धन्यवाद! – silvioprog

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