Hi all,

I made the following test:
I create a c# application that call the some method
//code
            object obj = Activator.CreateInstance
                (Type.GetTypeFromProgID("test.Application"));
            object[] objArgs = new object[1];
            objArgs[0] = "ciao";
            obj.GetType().InvokeMember("comInit",
                BindingFlags.InvokeMethod, null, obj, objArgs);

            object ret=obj.GetType().InvokeMember("Now",
                BindingFlags.InvokeMethod, null, obj, objArgs);

If I compile the code under any cpu I got the some problem that in thinkdesing If I compile the code under 32Bit cpu I have no error and the com server works well ..

So now my question is :
Can I manage this situation under python code ?

The strange think is if I use the anyCpu compilation the method Now works without any problem...!??!?

Regards,
Matteo


Il 06/01/2011 21:05, Tim Roberts ha scritto:
Matteo Boscolo wrote:
how can I understand how to fix this problem ?

It's quite a strange behaviour,
this is the method that fails, and it fails only if the argument is != None

      def comInit(self,obj=None):
          if obj==None:
              return "ss" + str(test1)
          else:
              self._obj=test1(obj)
              return self._obj
What do you expect this to do?  You are returning a Python object as the
return value of a COM method.  What do you expect a C program to do with
this object?  The Python COM support isn't going to know how to create a
wrapper for this.  If you need to return a new object, then that object
should be a Python COM object as well.


_______________________________________________
python-win32 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to