有时候初始化OpenCASCADE的显示模块会失败,例如运行AnyCAD的时候说初始化失败。
原因是因为本机装OpenCASCADE开发包时,在系统中加入若干的系统环境变量,如下:
其中有一条为:
set CSF_GraphicShr=%CASROOT%/win32/bin/TKOpenGl.dll
而OpenCASCADE的显示模块会根据环境变量动态加载TKOpenGL.dll。如果系统环境变量中没有CSF_GraphicShr,就会在当前目录下面找。
也就是说,你发布的软件有可能调用用户本机安装的TKOpenGL.dll。而这个dll有可能跟你的OCC不是同一个版本,从而可能引起初始化失败。
解决办法:
(1)修改用户的CSF_GraphicShr环境变量
可以让用户该,也可以在程序中实现
(2)一劳永逸的办法
自己修改调用TKOpenGL.dll的OCC模块,不让她依赖环境变量。
本文介绍了解决OpenCASCADE显示模块初始化失败的问题,主要原因是系统环境变量设置不当导致的DLL版本冲突。提供了两种解决方案:一是调整环境变量CSF_GraphicShr;二是修改OpenCASCADE源代码以避免依赖特定环境变量。
1557

被折叠的 条评论
为什么被折叠?



