2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
C# प्रोग्रामिंग् इत्यस्मिन् .[global::System.Runtime.InteropServices.DllImport]
एकं विशेषता अस्ति यत् अप्रबन्धितसङ्केतस्य (प्रायः C अथवा C++ इत्यनेन लिखितं DLL अथवा पुस्तकालयं) प्रवेशबिन्दुं चिह्नितुं उपयुज्यते येन C# कोडः तत् आह्वयितुं शक्नोति । इदं विशेषता P/Invoke (Platform Invocation Services) तन्त्रस्य भागः अस्ति, यत् C# कोड् अन्येषु प्रोग्रामिंग् भाषासु कोड् इत्यनेन सह अन्तरक्रियां कर्तुं शक्नोति ।
यदा भवान् एतत् विशेषतां पश्यति तदा प्रायः DLL मध्ये एकं फंक्शन् आयातयितुं उपयुज्यते येन तत् C# कोड् मध्ये आह्वयितुं शक्यते । उदाहरणतया:
- using System;
- using System.Runtime.InteropServices;
-
- class NativeMethods
- {
- // 导入DLL中的函数
- [DllImport("MyNativeLibrary.dll")]
- public static extern int MyNativeMethod(int a, int b);
- }
-
- class Program
- {
- static void Main()
- {
- // 调用DLL中的函数
- int result = NativeMethods.MyNativeMethod(1, 2);
- Console.WriteLine(result);
- }
- }
अस्मिन् उदाहरणे .MyNativeMethod
एकः इतिMyNativeLibrary.dll
function defined in , यत् C# कोड् मध्ये आयातितं भवति येन इदं भवितुम् अर्हतिMain
विधियाम् आहूतः।
DllImport
गुणानाम् अनेकाः पैरामीटर्स् सन्ति, परन्तु सर्वाधिकं सामान्यं पैरामीटर् DLL इत्यस्य नाम (उपरि उदाहरणे इव) अस्ति । अन्येषु पैरामीटर्स् मध्ये कॉलिंग् कन्वेन्शन (CallingConvention), CharSet (स्ट्रिंग् कृते प्रयुक्तः वर्णसमूहः) इत्यादयः सन्ति ।
नोट्: DLL सह P/Invoke इत्यस्य उपयोगं कुर्वन्, भवता सुनिश्चितं कर्तव्यं यत् DLL भवतः अनुप्रयोगेन सह सङ्गतम् अस्ति (अर्थात्, ते समानं रनटाइम् वातावरणं उपयुञ्जते, तथा च DLL भवतः ऑपरेटिंग् सिस्टम् तथा आर्किटेक्चर कृते संकलितः अस्ति)। तदतिरिक्तं, यतः P/Invoke C# इत्यस्य प्रकारस्य सुरक्षाप्रणालीं बाईपासं करोति, अतः अतिरिक्तसावधानी अवश्यं ग्रहीतव्या यत् पारितानि पैरामीटर्स् तथा च प्रत्यागतानि मूल्यानि DLL मध्ये फंक्शन् हस्ताक्षरेण सह सम्यक् मेलनं कुर्वन्ति इति सुनिश्चितं भवति