Hi, I have the following C# code and I am trying to do the same functionality in IronPython, any help is appreciated.
I was trying to do the same functionality in IronPython using the clrtype.py from the IronPython-2.6-Samples and I am able to connect to the library and the function but I am having trouble passing array of strings. With the current code it only passes the first letter and then it crashes. I am trying to call cwavec(int, int, char *) and it is a C function which is part of the vniwave.dll and I am trying access it in IronPython. C# code: namespace PVWave { public class OPI { [DllImport("C:\\datk_code\\VNI\\wave\\bin\\bin.i386nt\\vniwave.dll", EntryPoint = "cwavec", ExactSpelling = false, CharSet = CharSet.Ansi, SetLastError = true)] public static extern unsafe int cwavec(Int32 action, Int32 nCmds, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr, SizeParamIndex = 10)] string[] cmds); } } Here is my attempt in IronPython: import clrtype import System import sys class OPI(object): "Description of Class" # Note that you could also the "ctypes" modules instead of pinvoke declarations __metaclass__ = clrtype.ClrClass sys.path.append("C:\\datk_code\\VNI\\wave\\bin\\bin.i386nt") from System.Runtime.InteropServices import DllImportAttribute, PreserveSigAttribute DllImport = clrtype.attribute(DllImportAttribute) PreserveSig = clrtype.attribute(PreserveSigAttribute) @staticmethod @DllImport("vniwave.dll") @PreserveSig() @clrtype.accepts(System.Int32, System.Int32, System.Array[System.String]) @clrtype.returns() def cwavec(action, nCommands, commands): raise RuntimeError("this should not get called") def call_pinvoke_method_pvwave(): print "Calling pinvoke pvwave methods:" actionNum = 2 nCommands = 1 commands = System.Array[System.String](['PRINT, "Connected to PV-Wave from IronPython"']) print "cwavec(action, nCommands, commands):" OPI.cwavec(actionNum, nCommands, commands) call_pinvoke_method_pvwave() Thanks Ash
_______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com