2015-07-23 15 views
8

मैं एक परियोजना है कि एक गतिशील लिंक लाइब्रेरी कराना शामिल है पर काम कर रहा हूँ में मेरी DLL जोड़ा जा रहा है, तो मैं दृश्य स्टूडियो में एक सांत्वना app में यह परीक्षण करना चाहते हैं।सी में एक दृश्य स्टूडियो परियोजना ++

DLL यह विजुअल स्टूडियो में किया जाता है, उसमें ज्यादा, बस कुछ ही फ़ंक्शन नहीं है। मैं नहीं यकीन है कि अगर मैं सिर्फ में librarys हेडर को शामिल करने वाला हूँ गुण में शामिल कर रहा हूँ निर्देशिका पैनल, वरना

कुछ लोगों का एक बहुत कहते हैं कि मैं अपनी इसी .lib जोड़ने के लिए माना जाता रहा हूँ करना लाइब्रेरी या संदर्भ निर्देशिका में फाइल, लेकिन मुझे यकीन है कि वी.एस. एक .lib फ़ाइल DLL के साथ उत्पन्न नहीं कर रहा हूँ। मैं वी.एस. 2015 का उपयोग कर रहा

+0

क्या आपने डीएलएल को संदर्भ के रूप में जोड़ा था?शीर्ष पर विजुअल स्टूडियो में, प्रोजेक्ट पर जाएं, फिर संदर्भ जोड़ें ..., ब्राउज़ करें और अपनी फ़ाइल ढूंढें। मुझे यकीन नहीं है कि यह आपका मतलब है या नहीं। – MC10

+0

मुझे लगता है कि यह है, यह सिर्फ है कि हर कोई मुझसे कहता है मैं DLL खुद के बजाय एक corespinding स्थिर पुस्तकालय फ़ाइल जोड़ने के लिए माना जाता है, इसलिए मुझे यकीन है कि होने के लिए कहा, मैं इसे एक बार पहले की कोशिश की, लेकिन यह काम नहीं किया और मैं मुझे यकीन नहीं है कि अब समस्या क्या है। – Reaper9806

उत्तर

7

मैं मुझे के इस क्षण सामने वी.एस. की जरूरत नहीं है, लेकिन इन में सेट अप करने के लिए सामान्य चरण होना चाहिए:

Properties->Linker->Input: your.lib 
Properties->Linker->Additional Library Directories: ../your/bin 
Properties->General->Compiler->Additional Include Directories: ../your/include 

अपने अनुप्रयोग का निर्माण करने के लिए, DLL के एपीआई हेडर में संकलन समय के लिए शामिल किया जाना चाहिए, यह लिंक-समय के लिए बिन में उदारीकरण फ़ाइलें है। एक बार जब आपका ऐप EXE हो जाए, तो आपको केवल डीएलएल की आवश्यकता होती है जो आपके EXE के निष्पादन के समान फ़ोल्डर में हो।

आप वीएल में एक सामान्य समाधान में डीएलएल परियोजना और ऐप प्रोजेक्ट भी जोड़ना चाहते हैं और ऐप से डीएल तक परियोजना निर्भरता जोड़ सकते हैं। यह इमारत के सही क्रम को सुनिश्चित करता है, मानते हुए कि आप डीएलएल का निर्माण करने जा रहे हैं।

+1

धन्यवाद आदमी, यह पहना! :) इस बात की पुष्टि/यदि आप कोई आपत्ति नहीं है :) – Reaper9806

+0

कृपया मेरा उत्तर चिह्नित करते हैं, मेरे कनेक्शन एक छोटे से अस्थिर है। –

+0

मैंने सोचा क्लिक काम स्वीकार किए जाते हैं के रूप में – Reaper9806

2

तुम भी मैं क्या किया कर सकते हैं।

  1. आप अपनी समाधान निर्देशिका के अंदर Libs निर्देशिका बना सकते हैं।
  2. फिर आप Libs निर्देशिका या Libs

    • मेरे मामले में के अंदर कुछ उप-निर्देशिका के अंदर अपने dll फ़ाइलों जगह कर सकते हैं, मैं वहाँ में पूरे SFML-2.3.2 निर्देशिका जोड़ा है, जो स्रोत-कोड शामिल , .lib फ़ाइलें, और .dll फ़ाइलें।
    • मैंने प्रोजेक्ट गुणों में जो कुछ भी किया था, उससे लिंक किया था, लेकिन मैंने समाधान निर्देशिका में पथ नाम भरने के लिए विजुअल स्टूडियो के मैक्रोज़ का उपयोग किया था। बस अगर मैं इसे संस्करण नियंत्रण में रखना चाहता हूं और कई मशीनों से उस पर काम करना चाहता हूं।
  3. फिर मैंने प्रोजेक्ट के प्रॉपर्टी पेज को खोला।

  4. संपत्ति पेज के भीतर, मैं करने के लिए घटनाक्रम बिल्ड चला गया -> घटना के बाद बिल्ड -> कमांड लाइन
  5. कमांड लाइन के भीतर, आप एक प्रति आदेश में कोई भी आवश्यक फ़ाइलों की प्रतिलिपि जाएगा जोड़ सकते हैं निष्पादन योग्य के समान निर्देशिका जो उन्हें चाहिए।
    • मेरे मामले में मैं प्रयोग किया है: copy "$(SolutionDir)Libs\SFML-2.3.2\bin\*" "$(TargetDir)"
    • मैं सिर्फ अलग-अलग फ़ाइलों है कि मैं जरूरत कॉपी करने के लिए कई आदेशों लिख सकता है, लेकिन मैं वास्तव में यह SFML की स्थापना के बिना काम करने के लिए प्राप्त करने की कोशिश में एक अच्छा तीन घंटे खर्च किया था।
+0

प्रश्न दृश्य स्टूडियो परियोजना में सामान्य DLL उपयोग के बारे में था, और आप जवाब SFML से संबंधित है। कृपया, उत्तर को सामान्यीकृत करें। –

+0

उस के बारे में क्षमा करें, मैं वास्तव में अपने कंप्यूटर पर यह की स्थापना के बिना मेरी परियोजना पर काम करने SFML हो रही में देख रहा था, तो मैं समय में खुले काफी कुछ टैब था। ऐसा लगता है कि मैंने गलत जवाब के लिए अपना जवाब जोड़ा। –

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