在Open Cascade的使用过程中,经常会在用户机器上遇到"OpenCASCADE图形设备初始化失败"的错误。一般情况下,是因为用户机器上安装了OpenCASCADE开发包,并在系统中加入很多的若干的系统环境变量,其中有一个:
set CSF_GraphicShr=%CASROOT%/win32/bin{color} TKOpenGl .dll
OpenCASCADE的显示模块会根据环境变量CSF_GraphicShr 动态加载TKOpenGL .dll。如果系统环境变量中没有CSF_GraphicShr,才会在当前目录下面找。
当环境变量下的TKOpenGL.dll与软件使用的不是同一个版本时,就会出现显示设备初始化失败的错误。
解决办法:
(1)修改或删除机器上的CSF_GraphicShr环境变量;
(2)修改调用TKOpenGL .dll的OCC模块,不让它依赖环境变量。
Graphic3d_WNTGraphicDevice.cxx文件中52行如下代码:
Standard_CString TheShr = getenv("CSF_GraphicShr");
if ( ! TheShr )
TheShr = "TKOpenGl.dll";
改为:
Standard_CString TheShr = "TKOpenGl.dll";
转自:
http://hi.baidu.com/buildingit/blog/item/1bf186171e203d01c93d6dfa.html