[IronPython] [python] importing C Based *.dlls
Michael Foord
fuzzyman at voidspace.org.uk
Fri Dec 14 13:51:14 CET 2007
Kaveripakam, Sathish wrote:
> I am trying to "import C-Based dll's" into the Iron python files using
> import function, wherein I have path to the Standard C-python
> libraries is added.
>
> Ex:
>
> import sys
> import os
>
> if __name__ == "__main__":
>
> sys.path.append("C:/IronPython/IronPythonBinary-V1.1/IronPython-1.1-Bin/IronPython-1.1/Tutorial")
>
> import clr
>
> clr.AddReferenceToFileAndPath("C:/IronPython/IronPythonBinary-V1.1/IronPython-1.1-Bin/IronPython-1.1/Tutorial/csextend.dll")
> import Simple as t_Simple
> import c_dll
>
> In the above file I am able to import the C# file , but when execution
> comes to c_dll, it complains as "No module named c_dll".
>
> Can anyone let me know, if the C based dll's can be imported in Iron
> python environment ? If not, any work arounds available for the fix ?
The *basic* situation is that C based DLLs can't be imported into
IronPython.
Are they CPython C extensions? There is a way (experimental) to access
these:
http://www.voidspace.org.uk/ironpython/cpython_extensions.shtml
In general C libraries (unmanaged code) can be used from .NET with
'Platform Invoke' - using the DllImport attribute. Unfortunately
attributes can't be accessed from IronPython so you will need some stub
C# to do this. You can generate the C# dynamically from IronPython.
These two articles may help:
http://www.voidspace.org.uk/ironpython/winforms/part10.shtml
http://www.voidspace.org.uk/ironpython/dynamically_compiling.shtml
Michael Foord
http://www.manning.com/foord
>
> Regards
>
> ------------------------------------------------------------------------
> _Legal Notice:_
> The information in this electronic transmission may contain
> confidential or legally privileged information and is intended solely
> for the individual(s) named above. If you are not an intended
> recipient or an authorized agent, you are hereby notified that
> reading, distributing, or otherwise disseminating, copying or taking
> any action based on the contents of this transmission is strictly
> prohibited. Any unauthorized interception of this transmission is
> illegal under law. If you have received this transmission in error,
> please notify the sender by telephone [at the number indicated
> above/on +41 58 928 0101] as soon as possible and then destroy all
> copies of this transmission.
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
More information about the Ironpython-users
mailing list