这两天正在编译一个工程,正好用到了AcGs的一些类,于是知道了如下的一些事情:
ARX2015中AcGs类的一些变化:
1、替换掉了AcGsClassFactory 类。创建它需要用另外一个函数,如下:
AcGsKernelDescriptor descriptor;
descriptor.addRequirement(AcGsKernelDescriptor::k3DDrawing);
AcGsGraphicsKernel *pGraphicsKernel = AcGsManager acquireGraphicsKernel(descriptor);
<AcGsDevice *offDevice = pGraphicsKernel->createOffScreenDevice();
2、AcGsManager的一些函数也相应地发生了变化:
譬如getGSClassFactory不再存在,已经被上面所说的替代。
createAutoCADDevice函数现在有两个参数,
createAutoCADDevice(AcGsGraphicsKernel &, HWND hWnd)
第一个参数就是上面提到的AcGsGraphicsKernel类。
新增函数在帮助中已经说明。
3、>RenderMode 被废弃,改用visual style
以前的AcGsView的setMode 函数应该用 setVisualStyle
AcGsView *mpView;
...
mpView->setVisualStyle(AcGiVisualStyle::k2DWireframe);
//mpView->setMode(AcGsView::kWireframe); 不对!
AcGiCisualStyle提供了32种显示方式,远远超出以前的显示模式的数量。具体用法请参考其相应的include文件。
4、编译中的错误纠正:
error LNK2001: unresolved external symbol "__declspec(dllimport) public: static class AcGsGraphicsKernel * __cdecl AcGsManager::acquireGraphicsKernel
当出现这个错误的时候,请在库的依赖项中添加:AcDrawBridge.lib即可。
可参考如下链接:http://adndevblog.typepad.com/autocad/2014/04/graphic-changes-in-autocad-2015.html