>how do I cast a win32 file handle to an IntPtr?

i ran into this in the past as well; specifically when i started using FTDI USB 
devices on DLPdesign development kits.  the library is written in c++ MFC code. 
 After providing data marshal/platform invoke i applied the intptr in c#.   The 
USB device that I am accessing, passes a file handle to indicate specific pass 
/ fail condition.  i.e. the first command opens a connection to the device, the 
expected handle is 'OK'.  if not one of many different possible error messages 
is passed in the file handle.  

SummaryOpen the device and return a handle which will be used for subsequent 
accesses.DefinitionFT_STATUS FT_Open (int iDevice, FT_HANDLE 
*ftHandle)ParametersiDevice Index of the device to open. Indices are 0 
based.ftHandle Pointer to a variable of type FT_HANDLE where the handle will 
bestored. This handle must be used to access the device.Return ValueFT_OK if 
successful, otherwise the return value is an FT error code.
public class Wrapper{private static IntPtr m_USBhandler;
[DllImport("FTD2XX.dll", EntryPoint="FT_Open")]public static extern uint 
FT_Open(int iDevice, ref IntPtr ftHandle);
[DllImport("FTD2XX.dll", EntryPoint="FT_Close")]public static extern uint 
FT_Close(IntPtr ftHandle);
[DllImport("FTD2XX.dll", EntryPoint="FT_Read")]public static extern uint 
FT_Read(IntPtr ftHandle, byte[] lpBuffer,uint dwBytesToRead, ref 
uintlpdwBytesReturned);
[DllImport("FTD2XX.dll", EntryPoint="FT_Write")]public static extern uint 
FT_Write(IntPtr ftHandle, byte[] lpBuffer,uint dwBytesToWrite, ref 
uintlpdwBytesWritten);
[DllImport("FTD2XX.dll", EntryPoint="FT_Purge")]public static extern uint 
FT_Purge(IntPtr ftHandle, uint dwMask);
public static bool OpenDevice(){if (((FT_Status)Wrapper.FT_Open(1, ref 
m_USBhandler)) ==FT_Status.Ok){return true;}else{return false;}}

i hope this helps you by seeing one way of applying file handles in c#. 
Ron  “The desire that guides me in all I do is the desire to harness the forces 
of nature to the service of mankind.”Nikola Tesla“Radio Power Will 
Revolutionize the World” (Modern Mechanix & Inventions, July, 1934) 


     On Tuesday, July 21, 2015 11:12 AM, Dan Lenski <dlen...@gmail.com> wrote:
   

 Ron Harding via PythonDotNet <pythondotnet@...> writes:

> perhaps re-directed command line calls for stdin, stdout, stderr in c# 
interacting with python i/o command line calls(although in python it is 
common practice to daisy chain commands).

Unfortunately, I cannot redirect the output of the C# library to a 
convenient filehandle like stdout/stderr; I need to be specify a 
FileStream object.

It pretty much comes down to this: how do I cast a win32 file handle to an 
IntPtr?

Thanks,
Dan

_________________________________________________
Python.NET mailing list - PythonDotNet@python.org
https://mail.python.org/mailman/listinfo/pythondotnet


  
_________________________________________________
Python.NET mailing list - PythonDotNet@python.org
https://mail.python.org/mailman/listinfo/pythondotnet

Reply via email to