
Mon, 11/04/2002 - 12:55
Forums:
I have defined a class from TDocStd_Application, (Using SampleOcaf as a guide). When I create an instance of this class in the constructor of my MFC application, my code crashes. The problem seems to be in the constructor of my derived OCAF application class, but the constructor contains no code. Could there be a compiler switch set incorrectly?
HELP!!!!!!!!!!!!!!!!!!!!!!!
Mon, 11/04/2002 - 13:30
Hi Steve,
Check that all required variables like CSF_PluginDefaults, CSF_"app_name"Defaults, CSF_UnitsLexicon, CSF_UnitsDefinition are set.
Mon, 11/04/2002 - 14:49
Serge
Thanks.
Presumably you mean checking that the variables are set as environment
variables in Settings/Control Panel/System/Environment. Everything
seems okay, but I am not sure what you mean by
CSF_"app_name"Defaults.
Kind Regards
Steve Howgill
Mon, 11/04/2002 - 14:59
Hi,
I mean the variable that corresponds to the application resource file that is refered by method ResourcesName() in your application class.
Ex.
if ResourcesName returns SampleOCAF then
the variable name has to be:
CSF_SampleOCAFDefaults. By default it's named
CSF_StandardDefaults.
Regards,
Serge
Mon, 11/04/2002 - 15:55
Serge,
I am setting the variables as listed below, but still can not get the app to run.
ResourcesName() returns "Resources"
try
{ myGraphicDevice = new Graphic3d_WNTGraphicDevice(); }
catch (Standard_Failure)
{
AfxMessageBox("Fatal Error in graphic initialisation");
}
char szDirectory [256] ;
_getcwd (szDirectory,sizeof szDirectory);
if (szDirectory[strlen(szDirectory)-1] != '\\') {
strcat(szDirectory,"\\");
}
SetEnvironmentVariable ( "CSF_ResourcesDefaults",szDirectory);
SetEnvironmentVariable ( "CSF_PluginDefaults",szDirectory);
myApp = new TLeo_Application();
// Set the local system units
try
{ UnitsAPI::SetLocalSystem(UnitsAPI_MDTV); }
catch (Standard_Failure)
{
AfxMessageBox("Fatal Error in units initialisation");
}
Thanks for your help
Steve Howgill
Mon, 11/04/2002 - 16:02
Hello Steve,
As it seems from your piece of the code the CSF_... variables are pointing to the current working directory, check whether it contains two files: Plugin and Resources -I think that you miss them.
Regards,
Serge
Mon, 11/04/2002 - 16:22
Serge
The files Plugin and Resources do exist in the correct directory.
Regards
Steve Howgill
Mon, 11/04/2002 - 16:32
Hi,
And what is content of the file Resources?
Regards,
Serge
Mon, 11/04/2002 - 16:46
Serge
The file Resources contains the following:-
formatlist:Leo
Leo.Description: Leo Document Version 1.0
Leo.FileExtension: leo
Leo.StoragePlugin: ad696000-5b34-11d1-b5ba-00a0c9064368
Leo.RetrievalPlugin: ad696001-5b34-11d1-b5ba-00a0c9064368
LeoSchema: ad696002-5b34-11d1-b5ba-00a0c9064368
Leo.AttributeStoragePlugin: 47b0b826-d931-11d1-b5da-00a0c9064368
Leo.AttributeRetrievalPlugin: 47b0b827-d931-11d1-b5da-00a0c9064368
#
# standard attributes
#
MDTV-Standard.Description: Standard Document Version 1.0
MDTV-Standard.FileExtension: std
MDTV-Standard.StoragePlugin: ad696000-5b34-11d1-b5ba-00a0c9064368
MDTV-Standard.RetrievalPlugin: ad696001-5b34-11d1-b5ba-00a0c9064368
MDTV-StandardSchema: ad696002-5b34-11d1-b5ba-00a0c9064368
MDTV-Standard.AttributeStoragePlugin: 47b0b826-d931-11d1-b5da-00a0c9064368
MDTV-Standard.AttributeRetrievalPlugin: 47b0b827-d931-11d1-b5da-00a0c9064368
The file Plugin contains the following:-
! Description of available plugins
! ********************************
!
a148e300-5740-11d1-a904-080036aaa103.Location: FWOSPlugin
!
! base document drivers plugin
!
ad696000-5b34-11d1-b5ba-00a0c9064368.Location: PAppStdPlugin
ad696001-5b34-11d1-b5ba-00a0c9064368.Location: PAppStdPlugin
ad696002-5b34-11d1-b5ba-00a0c9064368.Location: PAppStdPlugin
47b0b826-d931-11d1-b5da-00a0c9064368.Location: PAppStdPlugin
47b0b827-d931-11d1-b5da-00a0c9064368.Location: PAppStdPlugin
Regards
Steve Howgill
Mon, 11/04/2002 - 17:04
Steve,
Well, both file seem to be correct. If I were you I'd
check once again what are values of CSF_... varibales
in the runtime. I made several OCAF applications and
in the most cases a crash during launching the application is caused by incorrect settings of the variables. Those variables are required to successfully run the application:
CSF_"app_name"Defaults
CSF_PluginDefaults
CSF_GraphicShr
CSF_UnitsLexicon
CSF_UnitsDefinition
Of cousre, the reason of the crash may be in an invalid build of the application but more often its due
to incorrect variables.
Regards
Mon, 11/04/2002 - 17:10
Serge,
I think I have found the problem.
I had the environment variable
CSF_PluginDefaults set to
C:\opencascade4.0\scr\StdResource;c:\opencascade4.0\scr\XCAFResources.
I have removed the XCAF value so that it now reads C:\opencascade4.0\scr\StdResource, rebooted NT and everything seems to be working O.K.
Many thanks for your help
Kind Regards
Steve Howgill