KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've searched the internet far and wide but didn't find a good explanation. My question is pretty simple. I have a DLL which has a function called Initialize and one of the parameters is a pointer that will receive a handle to be used with subsequent calls. Another parameter is a string which I will list for completeness. The signature I'm using is (in its simple form): [DllImport(MyDll)] static extern bool Initialize([In] string name, out IntPtr handle); The signature in the DLL itself is written as: Initialize(LPTSTR name, HANDLE handle) with the comment "HANDLE: Pointer to a location that will receive the handle". And subsequent calls are in the form of [DllImport(MyDll)] static extern bool DoSomething(IntPtr handle, uint randomParameter); I have been reading about SafeHandle and I was wondering if I could use it to substite for my IntPtr handle. And if I can, how do I do it? Extending the abstract SafeHandle class isn't an issue, but can I directly substitute my IntPtr for SafeHandle (and use default Marshalling) or do I need to do something extra?
Tags (comma-separated)
Save Edits
Cancel