On Sep 30, 2016, at 1:01 AM, Dominik Heller <dominik.hell...@gmail.com> wrote:
> 
>> That's odd.  Is your application compiled with -DUNICODE?  BSTR is
>> always Unicode, but LPCTSTR depends on the compiled character set.  I
>> would expect it to be LPCWSTR.  However, if it works for
>> "obj_2.SubObject.DoSomething", then that's not a problem.
> 
> It's compiled with /D "_MBCS" so it should indeed be a wide string.

You have that backwards.  _MBCS means ANSI.  With _MBCS, LPCTSTR == LPCSTR, or 
"char *".  Wide means -D_UNICODE.


> But even completely without strings, simple methods won't work on obj_1,
> e.g. something like double CosD(double degrees), but will work on SubObj,
> e.g. double GetValue(long index).
> Long story short, it seems the only thing I can get to work on obj_1 are
> methods without any arguments. On SubObj, most things seem to work except
> for call-by-ref parameters.

I'm afraid I am out of ideas.  If the object methods have identical signatures, 
they should behave identically.


> Is there any way to explicitly tell the Python wrapper about the interface
> to use without using makeup?

It gets all of that through the dispatch interface.  If the two functions 
advertise the same dispatch information, then Python should call them 
identically.
— 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.

_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32

Reply via email to