के साथ मेट्रो ऐप्स में PInvoke मेरे पास सिल्वरलाइट 5 में एक साधारण एफएम रेडियो ट्यूनर ऐप है जो ब्राउजर के बाहर अपने यूएसबी एफएम रिसीवर से मूल सी ++ डीएलएल से कोड कॉल करता है। यह एप्लिकेशन सिल्वरलाइट 5 के साथ विंडोज 8 में बहुत बढ़िया काम करता है।विंडोज 8/WinRT
अब मैं WinRT का उपयोग कर मेट्रो ऐप पर पोर्ट करने की कोशिश कर रहा हूं।
सिल्वरलाइट से एक्सएएमएल यूआई में माइग्रेशन बहुत आसान है और अच्छी तरह से काम करता है। PInvoke हस्ताक्षर और विशेषताओं को नेमस्पेस सिस्टम के साथ ठीक से पता चला था। रनटाइम.इंटरोप सर्विसेज और DLLImport विशेषता।
System.DllNotFoundException was unhandled by user code
Message=Unable to load DLL 'CarTFTFM.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Source=metroradio
TypeName=""
StackTrace:
at MetroRadio.FMRadio.HWInit2(Int32 port, Int32 initVolume)
at MetroRadio.MediaService.InitializeRadio() in c:\Users\Gutemberg\Documents\Visual Studio 11\Projects\MetroRadio\MetroRadio\MediaService.cs:line 160
at MetroRadio.MainPage.radio_Click(Object sender, RoutedEventArgs e) in c:\Users\Gutemberg\Documents\Visual Studio 11\Projects\MetroRadio\MetroRadio\MainPage.xaml.cs:line 43
InnerException:
:
समस्या यह है कि जब मैं अनुप्रयोग चल रहा हूँ और PInvoked देशी DLL कि मेरे SL5 एप्लिकेशन (जो भी Windows8 पर ठीक काम करता है) में काम करता था से किसी भी विधि कॉल, मैं इस अपवाद है
तो, मेरा सवाल है, इस PInvoke पर समस्या क्या है? चूंकि यह एसएल 5 ऐप के साथ विंडोज 8 पर अच्छा काम करता है, इसलिए मुझे WinRT/Metro Apps के साथ समस्याएं होने का कोई कारण नहीं दिखता है।
डीएलएल की तरह लगता है पैकेज मैनिफेस्ट से गायब है। एक अच्छा लिंक देने के लिए वर्तमान दस्तावेज़ बहुत अस्पष्ट हैं। –
इस प्रश्न पर एक नज़र डालें: http://stackoverflow.com/questions/7807361/how-to-p-invoke-to-a-native-dll-from-metro –
ध्वनि समान लेकिन अभी भी कोई सफलता नहीं ... –