best bet for using a .NET dll
hardcoded.software at gmail.com
Tue Nov 21 13:21:43 CET 2006
Warren Jackson wrote:
> I'd like to make a simple program that uses the Canon digital camera
> SDK (EDSDK 1.3). Basically I need to take pictures and download them
> to my computer. They have a fair amount of example code for the .NET
> languages, and don't officially support anything else.
> The API uses more than the basic c types (references, etc.) that I'm
> not totally familiar with yet. Included at the bottom is an example
> of one of the functions.
> What is my best bet for writing this in Python? cTypes, IronPython,
> something else? I haven't worked with either before but am currently
> reading up. It seams cTypes has a difficult time dealing with
> anything but the 'normal' c types, is this correct?
> Would it be easier to just write a program in C# to handle all of the
> fancy types? (ie. make a function that opens and closes session, finds
> camera, takes picture, downloads picture, saves picture - that can
> then be read in python) ? This isn't a very attractive option to me.
> Thanks in advance for any insight.
> 3.1.24 EdsDownload
> Downloads a file on a remote camera (in the camera memory or on a
> memory card) to the host computer. The downloaded file is sent
> directly to a file stream created in advance.
> When dividing the file being retrieved, call this API repeatedly. Also
> in this case, make the data block size a multiple of 512 (bytes),
> excluding the final block.
> EdsError EDSAPI EdsDownload( EdsDirectoryItemRef inDirItemRef,
> EdsUInt32 inReadSize,
> EdsStreamRef outStreamRef )
> Designate the file object in the camera to download.
> Designate the size in bytes to download.
> Specifies the destination stream. The stream for downloading is
> created by means of EdsCreateFileStream, EdsCreateMemoryStream, or the
> Return Values
> Returns EDS_ERR_OK if successful. In other cases, see the EDS Error Lists.
There is also "Python for .Net", which is simply a bridge (as opposed
to IronPython, which is a complete python implementation). It works
More information about the Python-list