यह पहली बार है जब मुझे डिवाइस चालक के साथ बातचीत करने के लिए पी/Invoke का उपयोग करने की आवश्यकता है। DeviceIoControl समारोह में मैं डिवाइस के लिए संभाल के लिए SafeFileHandle का उपयोग करें और pinvoke.net का कहना है:डीएलएल आयात में सुरक्षितफाइल हैंडल
आप एक SafeFileHandle उपयोग करते हैं, CloseHandle कॉल नहीं करते के रूप में CLR यह तुम्हारे लिए बंद हो जाएगा।
[DllImport("kernel32.dll", SetLastError = true)] public static extern bool CloseHandle(SafeFileHandle hObject);
सच्चाई क्या है:
लेकिन सी # कुकबुक में मैं CloseHandle इस तरह का हस्ताक्षर पाया?
आपको बुला के आरोप में होना चाहते हैं 'CloseHandle' फिर अपने को संभालने की घोषणा के बजाय' होने की IntPtr'। –
@ डेविड हेफरनान, मैं इंटिप्टर के साथ सौदा नहीं चाहता हूं। सी # कुकबुक में इस कोड स्निपेट में ठोकर खाई गई जब मैं उलझन में था। – Oksana
यदि आप 'DeviceIoControl' को कॉल करने जा रहे हैं तो मेरा सुझाव है कि आप 'IntPtr' के अपने डर को दूर करें। –