<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Sep 22, 2014 at 2:13 PM, Matt Newell <span dir="ltr"><<a href="mailto:newellm@blur.com" target="_blank">newellm@blur.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":da" class="a3s" style="overflow:hidden">I have compiled qt/sip/pyqt and a lot of other c++ stuff with msvc2005, 2008,<br>
2010, and recently 2012 ALL linked against <a href="http://python.org" target="_blank">python.org</a>'s python 2.7 and I've<br>
never had an issue. This code has been used extensively in production with<br>
over 100 users inside various 3rd party applications (3dsmax, softimage xsi,<br>
more recently maya), a bunch of in house applications, and from python.exe<br>
itself.<br>
<br>
However you MUST use the same msvc for anything that passes around c++<br>
objects, or you WILL get crashes.<br>
<br>
Fortunately libpython is an all C api and it's my understanding that the C ABI<br>
has been stable between msvc versions. I think the new/delete problem does<br>
not apply because of the way python's memory management works. I also think<br>
that any python modules i've compiled do not pass FILE pointers to python's<br>
api.<br>
<br>
I'm not saying problems aren't possible just that in my experience it works<br>
fine.</div></blockquote></div><br>This has generally been my experience as well. Namely, at work we use Maya 2013 which embeds CPython 2.7 compiled against VS2010, and most 3rd party C extensions work fine. Additionally, we have a few internal C extensions as well, which are compiled against VS2010, and they work fine in Python 2.7 as downloaded from <a href="http://python.org">python.org</a>.</div><div class="gmail_extra"><br></div><div class="gmail_extra">In a few cases, however, we have run into issues, which are quite annoying. Generally, any issues show up almost immediately, however in a few cases crashes have shown up days or weeks after starting to use a library, when somebody decides to call a function that then passes a C std object across the library boundary, which are then often very difficult to debug.<br><br clear="all"><div>Chris</div>
</div></div>