I am trying to upgrade some C++ code from V5 to V6. I am able to define a CRhinoUiLayerComboBox object but when I try to use any of it’s SDK functions, I get an unresolved external symbol error from my compiler. I have included the #define RHINO_SDK_MFC statement as discussed in this link: http://developer.rhino3d.com/guides/cpp/whats-new/ . Could it be that you have implemented new function names in your cpp file but havn’t updated the header?
This is rather odd - it would appear to be that CRhinoUiLayerComboBox is not exported because it isn’t actually used anywhere in Rhino. Oddly - and I don’t know why this is the case - there is also a CRhinoLayerComboBox which is exported. Maybe you could try using that one.
In the meantime, @JohnM could maybe try to figure out if that class should still be in the SDK, and if it should be, ensure that it is exported.
Thanks for the suggestion Andy. I just redefined my object as a CRhinoLayerComboBox without having to change any other code and everything appears to be working fine. I think this will be just a drop-in replacement for me.
I’m sorry the class was broken in the SDK and I was able to figure out why. The class is included in a internal UI library but no longer referenced by core Rhino. The class is exported but since it is not referenced by the core it is optimized out of the link library. I went ahead and created RH-41352 to track this item and it has been fixed.
I did some additional investigation and it appears that CRhinoLayerComboBox is a near clone of the CRhinoUiLayerComboBox class and is a perfectly acceptable replacement class so I think your current solution is a good one.
RH-41352 is fixed in the latest WIP