python - dll access (ctypes or swig)
Cameron Laird
claird at lairds.us
Tue Apr 17 23:55:38 EDT 2007
In article <mailman.6640.1176846203.32031.python-list at python.org>,
Larry Bates <larry.bates at websafe.com> wrote:
>Daniel Watrous wrote:
>> Hello,
>>
>> I am interested in using python to script access to some hardware for
>> which there are existing drivers in the form of DLLs. The DLLs each
>> have four exported functions and a host of COM Properties and COM
>> Methods. The four exported functions are as follows:
>> DllCanUnloadNow
>> DllGetClassObject
>> DllRegisterServer
>> DllUnregisterServer
>>
>> The COM methods and properties all begin with I, followed by a unique name.
>>
>> I am able to load the DLL using ctypes and it can access the exported
>> functions, but I'm not sure how to access the COM methods and
>> properties. I have read that ctypes once had support for COM but that
>> it has since been separated into its own project. I couldn't find any
>> information about how these work together.
>>
>> All help is appreciated. THANKS in advance...
>>
>> Daniel
>
>I recently learned that you can ship COM as either an .EXE or a .DLL (nobody
>has yet let me know why). You don't have a traditional .DLL that you would
>use ctypes to call methods in, you have a COM .DLL. COM methods need to be
>access with Win32com
>
>obj=win32com.client.Dispatch("typelib name").
>
>You need to find out the COM dispatch typelib name and make sure the DLL is
>registered (regsvr32 your.dll).
>
>-Larry
Is this--adroit use of Win32com with special-purpose DLLs--written
up anywhere? Doing this with unusual hardware that turns up in the
real world is ENTIRELY more satisfying than trying to wrangle the
Visual C bindings that vendors usually push, but, apart from Mark
and Andy's book, now over seven years old, I know of no appropri-
ately ambitious tutorial in the subject.
Daniel, do you have what you need to make progress? Have you seen
<URL: http://www.oreilly.com/catalog/pythonwin32/ >?
More information about the Python-list
mailing list