सी # के भीतर सी ++ dll

वोट
0

मैं नीचे के रूप में सी ++ DLL है

#include stdafx.h


extern C __declspec(dllexport)double Add(double a, double b);


extern double Add(double a, double b) 
{ 
    return a + b; 
} 

n यहाँ मेरी सी # अनुप्रयोग के साथ इस DLL लिंक करने का प्रयास हूँ

using System.Text;

using System.Runtime.InteropServices; 

namespace test
{

    class Program

    {

        [DllImport(DLL.dll, CallingConvention = CallingConvention.Cdecl)]

        public static extern double Add(double a, double b);  


        static void Main(string[] args)

        {




            Console.WriteLine(Add(1.0, 3.0)); // error here


            Console.ReadLine(); 

        }
    }
}

m हो रही त्रुटि:

: (HRESULT से अपवाद: 0x8007007E) निर्दिष्ट मॉड्यूल नहीं पाया जा सका असमर्थ DLL 'DLL.dll' लोड करने के लिए।

कृपया मेरी मदद करो बाहर ... मैं कैसे ग # साथ लिंक कर सकते हैं c ++ dll?

10/09/2012 को 06:56
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
1

बुला सम्मेलन निर्धारित करता है कि समारोह मापदंडों एक समारोह मंगलाचरण से पहले ढेर पर रखा जाता है, और वे कैसे निकाल दिए जाते हैं (फोन करने वाले बनाम कॉल प्राप्त करने वाला) जब समारोह रिटर्न। तुम बहुत, या गोटो लाख StackOverflow के बारे में सवाल में इस बारे में और अधिक जानकारी प्राप्त कर सकते हैं यहाँ और एक छोटे से पढ़ा।

सी # (उर्फ नेट) आवेदन आप लिख रहे हैं की पहुंच के भीतर DLL की नियुक्ति के बारे में, मुझे डर है कि मैं इस पर टिप्पणी नहीं कर सकते हैं सिवाय इसके कि (Windows में पथ) कहने के लिए सामान्य DLL के अपने lib-खोज पथ में होना चाहिए वर्तमान निर्देशिका, या गिरी के घर निर्देशिका (आमतौर पर ग:।।। \ windows \ system32 फ़ाइलों system32 को कॉपी नहीं है, btw सिर्फ सेटअप अपने आवेदन निर्देशिका जहाँ आपके DLL रह रहा है "से चलाने के लिए" और आप ठीक होना चाहिए वहाँ हैं अपवाद इस, और विन्यास सेटिंग्स है कि मौलिक इस को बदल सकते हैं, लेकिन मैं आपको थे मैं अब के लिए सरल के साथ चिपके रहते हैं चाहते हैं। परिसर हमेशा बाद में आ सकते हैं करने के लिए।

10/09/2012 को 07:30
का स्रोत उपयोगकर्ता

वोट
0

यह त्रुटि हुई क्योंकि DLL.dllअपने डिबग / रिलीज फ़ोल्डर में नहीं था,

जहाँ तक मुझे पता के रूप में दृश्य स्टूडियो नहीं जानता है कि कैसे अपने आउटपुट फ़ोल्डर manualy करने के लिए उन फ़ाइलों की प्रतिलिपि बनाना।

अपने सी # समाधान के लिए dll फ़ाइल जोड़ने

और फिर files propertiesसेट build actionकरने के लिए content और सेट copy to output directoryकरने के लिए copy if newerइस नकल को स्वचालित करेगा

10/09/2012 को 07:54
का स्रोत उपयोगकर्ता

वोट
0

आप या तो सी # exe के रूप में एक ही स्थान में dll संयंत्र या exe अंदर dll पैक करने के लिए की आवश्यकता होगी। पहला विकल्प काफी सरल है। दूसरा विकल्प के लिए, बाहर की जाँच विजुअल C # 2010 में में .exe में एम्बेडिंग DLL के

10/09/2012 को 07:47
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more