Hi Shing,

The additions to the interface you've detailed seem like a reasonable request, however we can't break NDK compatibility until the next major release. I would suggest you contact [email protected] directly with a feature request for this.

I would also like to get to the bottom of your crashes. There shouldn't be any problems calling these functions unless you're mixing crt versions.

Would it be possible for you to send us a code sample that causes the crash?

Regards,

Peter.

On 17/12/2012 13:12, Chishing Yip wrote:
Hi Tom,

Thanks a lot for your reply.
We always make release build on windows, we have developed windows plugin for two years without any STL/compiler version problem in Nuke 6.3, this problem is new to us.

As I can see SceneView_knob is the only one that has this problem so far in our plugins, is adding few wrappers an alternative? e.g. we are using:
const std::vector< std::string >& SceneView_KnobI::menus() const;
const std::vector< std::string >& SceneView_KnobI::getItemNames() const;
void SceneView_KnobI::getImportedItems( std::vector< unsigned int >& items ) const; void SceneView_KnobI::getSelectedItems( std::vector< unsigned int >& items ) const;

but we could also do the same thing without any STL interface if we could have wrappers like these:

unsigned int SceneView_KnobI::numOfMenus() const;
const char* SceneView_KnobI::getMenuItem( unsigned int menuIndex ) const;

unsigned int SceneView_KnobI::numOfItemNames() const;
const char* SceneView_KnobI::getItemName( unsigned int itemIndex ) const;

unsigned int SceneView_KnobI::numOfItems() const;
bool SceneView_KnobI::isImportedItem( unsigned int itemIndex ) const;
bool SceneView_KnobI::isSelectedItem( unsigned int itemIndex ) const;

in the private implementation in SceneView_KnobI.cpp ( or any private .cpp implementation inside Nuke ):

unsigned int SceneView_KnobI::numOfMenus() const
{
return menu.size();
}
const char* SceneView_KnobI::getMenuItem( unsigned int menuIndex ) const
{
return menu[ menuIndex ].c_str();
}

unsigned int SceneView_KnobI::numOfItemNames() const
{
return getItemNames.size();
}
const char* SceneView_KnobI::getItemName( unsigned int itemIndex ) const
{
return getItemNames[ menuIndex ].c_str();
}

unsigned int SceneView_KnobI::numOfItems() const
{
return /* the total items scene view knob holds*/ ;
}
bool SceneView_KnobI::isImportedItem( unsigned int itemIndex ) const
{
return /*if getImportedItems() contains the input itemIndex or not*/;
}
bool SceneView_KnobI::isSelectedItem( unsigned int itemIndex ) const
{
return /*if getSelectedItems() contains the input itemIndex or not*/;
}

In this way, we don't need to deal with any STL interface but we could construct the item list inside our plugin by ourselves, so there won't be any STL compatibility issue between Nuke and any 3rd party plugins, and since these are all wrappers I don't think that's difficult to implement.

We understand the API in Nuke 7.0 has been frozen, if above suggestion is an acceptable alternative, we could wait until Nuke 7.1 release, what do you think?

Thanks again for your reply.
Best,
Shing
--
Zhicheng YE - Shing
the /*jupiter jazz*/ group - visual research
mercenaries of jupiter jazz limited - hong kong
www.jupiter-jazz.com <http://www.jupiter-jazz.com/>


On Mon, Dec 17, 2012 at 6:58 AM, Tom Ward <[email protected] <mailto:[email protected]>> wrote:

    Hi Paolo,

    The version of VS2010 that Nuke is compiled against is indeed
    16.00.30319.01 <tel:16.00.30319.01> and as far as I know there
    have been no breaking CRT changes in 2010 (unlike 2005) so don't
    think that would be the problem

    Are you definitely always linking against the release version of
    the CRT? As we don't ship the debug versions of DDImage (or Nuke)
    you need to always build release versions of your plugins for
    Windows, not doing so usually results in STL problems like you're
    apparently seeing.

    Hope that helps

    Tom

    On Sun, Dec 16, 2012 at 12:33 PM, Paolo Berto
    <[email protected] <mailto:[email protected]>> wrote:

        Hi Fellaz,

        we mailed on nuke-dev but got no answers.

        In a nutshell, we have a plugin which uses SceneView_knob in
        Nuke 7.0, it always crashes after accessing
        SceneView_KnobI::getSelectedItems()
        or SceneView_KnobI::getImportedItems(), to us this looks like
        a STL version related problem.

        Our compiler version:

          > cl.exe
              Microsoft (R) C/C++ Optimizing Compiler Version
        16.00.30319.01 <tel:16.00.30319.01> for x64
          > link.exe
              Microsoft (R) Incremental Linker Version 10.00.30319.01
        for x64

        We installed MSVC 2010, without SDK 7.1, without 2010 SP1.

        How can we setup the correct development environment for Nuke
        7.0 ?
        Which compiler ( and /exact/ version ) Nuke 7.0 was compiled
        against?

        Best,


-- pbd

        paolo berto durante
        space cowboy // jupiter jazz ltd // hong kong
        https://atomkraft.hk
--




-- Tom Ward, Software Engineer
    The Foundry, 6th Floor, The Communications Building,
    48 Leicester Square, London, UK, WC2H 7LT
Tel: +44 (0)20 7434 0449 <tel:%2B44%20%280%2920%207434%200449> Web: www.thefoundry.co.uk <http://www.thefoundry.co.uk>

    The Foundry Visionmongers Ltd.
    Registered in England and Wales No: 4642027



--



_______________________________________________
Nuke-dev mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev

Reply via email to