Packaging an OCC application

Hi all,

I'm facing problems with our application developped with OCC. I'm using OCC v5.1(windows) with MS Visual Studio 6 under Windows XP.
I used the "Dependency walker" tool to see the DLLs needed by the application. On the target PCs(running windows) I copied in a directory the executable, the needed OCC DLLs, and my MSVCRT.DLL, MSVCP60.DLL and MSVCIRT.DLL.
When executing the app on the target PC(OCC is not installed on it) I get the error(translated from french) :

"The entry point of procedure ??_U@YAPAXI@Z can't be found in the DLL msvcrt.dll"

What is the problem? Does OCC needs to be installed on target PCs? How do you deploy applications developped with OCC?
Any help appreciated.

Thanks in advance.

Hugues Delorme's picture

Here are the DLLs I have put in the same directory of the application's executable :

MSVCIRT.DLL
MSVCP60.DLL
MSVCRT.DLL
TKBRep.dll
TKBool.dll
TKG2d.dll
TKG3d.dll
TKGeomAlgo.dll
TKGeomBase.dll
TKHLR.dll
TKIGES.dll
TKMath.dll
TKOffset.dll
TKPrim.dll
TKSTEP.dll
TKService.dll
TKShHealing.dll
TKTopAlgo.dll
TKV2d.dll
TKV3d.dll
TKXSBase.dll
TKernel.dll
qt-mt322.dll (used for GUI)

Hugues Delorme's picture

I still can't get an application built with OCC 5.1 works on a target PC.
I remember with OCC 5.0 there was no problems, just copy the needed DLLs in the same directory of the executable.
I'm re-asking my question : does OCC 5.1 need to be installed on target PCs? If not what needs to be installed/done(maybe env variables, etc.)?
I can't find materials of answer in the OCC documentation. There must someone here who already succeed. Can he give a help?

Rob Bachrach's picture

You need to copy the appropriate libraries to the same directory as your executable and set the environment variables as documented in:

http://www.opencascade.org/devversion/faqenvvar.php

Hugues Delorme's picture

OK, thanks.

I've found some useful other doc too :
http://www.opencascade.com/faq/
And go to "Packaging Open Cascade Based Application"->Using InstallShield tool on Windows"

Stephane Routelous's picture

you can install VMWare or VirtualPC on your computer to test installation on new computer without OCC installed.

Hugues Delorme's picture

I used Inno Setup installer generator instead of the InstallShield that comes with Visual Studio 6.0.

Inno Setup is free, easy to use(well-documented) and is downloadable at :
http://www.jrsoftware.org/isinfo.php

I followed the steps described in the FAQ link I gave. The environment variables I set up are(Inno script) :

[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_GraphicShr"; ValueData: "{app}\TKOpenGl.dll"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "MMGT_CLEAR"; ValueData: "1"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_MDTVFontDirectory"; ValueData: "{app}\FontMFT"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_MDTVTexturesDirectory"; ValueData: "{app}\Textures"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_SHMessage"; ValueData: "{app}\SHMessage"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_UnitsDefinition"; ValueData: "{app}\UnitsAPI\Units.dat"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_UnitsLexicon"; ValueData: "{app}\UnitsAPI\Lexi_Expr.dat"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_XSMessage"; ValueData: "{app}\XSMessage"; Flags: deletevalue

The directories I create during set up are (Inno script) :
[Dirs]
Name: "{app}\FontMFT"
Name: "{app}\SHMessage"
Name: "{app}\Textures"
Name: "{app}\UnitsAPI"
Name: "{app}\XSMessage"

{app} stands for the "application's target directory".

The DLLs I copy are :

[Files]
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKFeat.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKBO.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKFillet.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKG2d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKG3d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKGeomAlgo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKGeomBase.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKHLR.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKIGES.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKMath.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKOffset.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKOpenGl.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKPrim.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKService.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKShHealing.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKSTEP.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKTopAlgo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKV2d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKV3d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKXSBase.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKBool.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKBRep.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKernel.dll"; DestDir: "{app}"; Flags: ignoreversion

Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\src\UnitsAPI\Lexi_Expr.dat"; DestDir: "{app}\UnitsAPI"
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\src\UnitsAPI\Units.dat"; DestDir: "{app}\UnitsAPI"

Source: "C:\hd-space\dev\libs\Qt\lib\qt-mt323.dll"; DestDir: "{app}"; Flags: ignoreversion

Source: "C:\WINDOWS\SYSTEM32\MSVCRTD.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\mapi32x.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCIRT.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCIRTD.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCP60.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCP60D.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCRT.DLL"; DestDir: "{app}"; Flags: ignoreversion

You have to indicate the correct paths(instead of "C:\hd-space\dev\libs\OpenCASCADE5.1\...".

The generated setup program is fine, and the installed application works on target PCs, but this is true only for Windows XP. On PCs running Windows NT 4, I still get the same error(see my first question).
I don't know what makes it failed on NT, it is like when launching the installed app, the msvcrt.dll used is the one in c:\WINNT\System32 instead of the one installed with the application.

Hugues Delorme's picture

I used Inno Setup installer generator instead of the InstallShield that comes with Visual Studio 6.0.

Inno Setup is free, easy to use(well-documented) and is downloadable at :
http://www.jrsoftware.org/isinfo.php

I followed the steps described in the FAQ link I gave. The environment variables I set up are(Inno script) :

[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_GraphicShr"; ValueData: "{app}\TKOpenGl.dll"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "MMGT_CLEAR"; ValueData: "1"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_MDTVFontDirectory"; ValueData: "{app}\FontMFT"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_MDTVTexturesDirectory"; ValueData: "{app}\Textures"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_SHMessage"; ValueData: "{app}\SHMessage"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_UnitsDefinition"; ValueData: "{app}\UnitsAPI\Units.dat"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_UnitsLexicon"; ValueData: "{app}\UnitsAPI\Lexi_Expr.dat"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_XSMessage"; ValueData: "{app}\XSMessage"; Flags: deletevalue

The directories I create during set up are (Inno script) :
[Dirs]
Name: "{app}\FontMFT"
Name: "{app}\SHMessage"
Name: "{app}\Textures"
Name: "{app}\UnitsAPI"
Name: "{app}\XSMessage"

{app} stands for the "application's target directory".

The DLLs I copy are :

[Files]
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKFeat.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKBO.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKFillet.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKG2d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKG3d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKGeomAlgo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKGeomBase.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKHLR.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKIGES.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKMath.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKOffset.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKOpenGl.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKPrim.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKService.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKShHealing.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKSTEP.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKTopAlgo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKV2d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKV3d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKXSBase.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKBool.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKBRep.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKernel.dll"; DestDir: "{app}"; Flags: ignoreversion

Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\src\UnitsAPI\Lexi_Expr.dat"; DestDir: "{app}\UnitsAPI"
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\src\UnitsAPI\Units.dat"; DestDir: "{app}\UnitsAPI"

Source: "C:\hd-space\dev\libs\Qt\lib\qt-mt323.dll"; DestDir: "{app}"; Flags: ignoreversion

Source: "C:\WINDOWS\SYSTEM32\MSVCRTD.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\mapi32x.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCIRT.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCIRTD.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCP60.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCP60D.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCRT.DLL"; DestDir: "{app}"; Flags: ignoreversion

You have to indicate the correct paths(instead of "C:\hd-space\dev\libs\OpenCASCADE5.1\...".

The generated setup program is fine, and the installed application works on target PCs, but this is true only for Windows XP. On PCs running Windows NT 4, I still get the same error(see my first question).
I don't know what makes it failed on NT, it is like when launching the installed app, the msvcrt.dll used is the one in c:\WINNT\System32 instead of the one installed with the application.

Hugues Delorme's picture

I used Inno Setup installer generator instead of the InstallShield that comes with Visual Studio 6.0.

Inno Setup is free, easy to use(well-documented) and is downloadable at :
http://www.jrsoftware.org/isinfo.php

I followed the steps described in the FAQ link I gave. The environment variables I set up are(Inno script) :

[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_GraphicShr"; ValueData: "{app}\TKOpenGl.dll"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "MMGT_CLEAR"; ValueData: "1"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_MDTVFontDirectory"; ValueData: "{app}\FontMFT"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_MDTVTexturesDirectory"; ValueData: "{app}\Textures"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_SHMessage"; ValueData: "{app}\SHMessage"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_UnitsDefinition"; ValueData: "{app}\UnitsAPI\Units.dat"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_UnitsLexicon"; ValueData: "{app}\UnitsAPI\Lexi_Expr.dat"; Flags: deletevalue
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "CSF_XSMessage"; ValueData: "{app}\XSMessage"; Flags: deletevalue

The directories I create during set up are (Inno script) :
[Dirs]
Name: "{app}\FontMFT"
Name: "{app}\SHMessage"
Name: "{app}\Textures"
Name: "{app}\UnitsAPI"
Name: "{app}\XSMessage"

{app} stands for the "application's target directory".

The DLLs I copy are :

[Files]
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKFeat.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKBO.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKFillet.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKG2d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKG3d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKGeomAlgo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKGeomBase.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKHLR.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKIGES.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKMath.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKOffset.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKOpenGl.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKPrim.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKService.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKShHealing.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKSTEP.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKTopAlgo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKV2d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKV3d.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKXSBase.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKBool.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKBRep.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\win32\dll\TKernel.dll"; DestDir: "{app}"; Flags: ignoreversion

Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\src\UnitsAPI\Lexi_Expr.dat"; DestDir: "{app}\UnitsAPI"
Source: "C:\hd-space\dev\libs\OpenCASCADE5.1\ros\src\UnitsAPI\Units.dat"; DestDir: "{app}\UnitsAPI"

Source: "C:\hd-space\dev\libs\Qt\lib\qt-mt323.dll"; DestDir: "{app}"; Flags: ignoreversion

Source: "C:\WINDOWS\SYSTEM32\MSVCRTD.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\mapi32x.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCIRT.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCIRTD.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCP60.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCP60D.DLL"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\WINDOWS\SYSTEM32\MSVCRT.DLL"; DestDir: "{app}"; Flags: ignoreversion

You have to indicate the correct paths(instead of "C:\hd-space\dev\libs\OpenCASCADE5.1\...".

The generated setup program is fine, and the installed application works on target PCs, but this is true only for Windows XP. On PCs running Windows NT 4, I still get the same error(see my first question).
I don't know what makes it failed on NT, it is like when launching the installed app, the msvcrt.dll used is the one in c:\WINNT\System32 instead of the one installed with the application.

tiago medeiros's picture

tkbool.dll send please, brazil.

Lee's picture

have nice day

Philippe Hamon's picture

Test open cascade