cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JBB123
Level 3

error L8407

Hi,

I had been using IS 2009 for building my projects. But now I have changed from IS 2009 to IS 2010 premier.
I am trying to build an earlier IS 2009 project in IS 2010. But getting the following error

-------------------------------------------------------------------------------------------------------------------------
InstallShield Script Compiler
Version 16.0.0.328
Copyright 1997-2008 Acresso Software Inc. and/or InstallShield Co. Inc. All Rights Reserved.

Compiling...
Setup.Rul
C:\Program Files\InstallShield\2010\Script\ISRT\Include\Dialogs.h(31) : warning W7510: ' Dialogs.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\Misc.h(4) : warning W7510: ' Misc.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\CustomDlg.h(31) : warning W7510: ' CustomDlg.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\Winapi.h(19) : warning W7510: ' Winapi.h is obsolete, #include "ISRTWindows.h" instead.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\Silent.h(30) : warning W7510: ' Silent.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\sdrc.h(23) : warning W7510: ' SDRC.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\sdint.h(32) : warning W7510: ' SDINT.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\CmptView.h(31) : warning W7510: ' CmptView.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\uidefs.h(4) : warning W7510: ' uidefs.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\DialogsPriv.h(32) : warning W7510: ' DialogsPriv.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\strpriv.h(29) : warning W7510: ' StrPriv.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\Winapi.h(19) : warning W7510: ' Winapi.h is obsolete, #include "ISRTWindows.h" instead.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\scrlist.h(31) : warning W7510: ' scrlist.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\Winapi.h(19) : warning W7510: ' Winapi.h is obsolete, #include "ISRTWindows.h" instead.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\OSInfo.h(22) : warning W7510: ' OsInfo.h is obsolete. Please remove any references to this file.' : #warning
C:\Program Files\InstallShield\2010\Script\ISRT\Include\Enable.h(31) : warning W7510: ' Enable.h is obsolete. Please remove any references to this file.' : #warning
Linking...
isrt.obl(ISRTScriptDialogs.obs) : error L8407: 'SdFeatureDialogEx' : conflicts with previous definition
Setup.inx - 1 error(s), 16 warning(s)
ISDEV : warning -4371: There were warnings compiling InstallScript
-------------------------------------------------------------------------------------------------------------------------

Please providea suitable solution to this error.

regards,
JBB.
Labels (1)
0 Kudos
(4) Replies
DebbieL
Level 17

Did you see this part of the release notes?
InstallScript Header File Changes
The InstallScript header files (.h) have been reorganized. As a result, some of the .h files are obsolete. If an InstallScript file (.rul) in your project references one or more of these obsolete .h files, a compile warning is displayed whenever you compile your script or build a release. To resolve the warnings, remove any #include statements that reference the obsolete .h files, and rebuild the release. Also, ensure that ifx.h is referenced in an #include statement in your Setup.rul file or in other script files that are referenced by Setup.rul.

I think that should resolve most of the warnings. Does that help?
0 Kudos
phill_mn
Level 7

Actually the advice posted about getting rid of obsolete .h files is not related to this issue and does not resolve this issue. The issue is with an 'upgraded' project which has imported dialog script (.ruls) from a prior version of InstallShield, which now results in the reported link errors. As indicated below the link error provides no further information but by changing the processor definitions a more useful compile error is produced.

By comparing my IS2010 upgraded InstallScript project which gets the same L8407 errors, listed in this thread, to a IS2011 'new project', I found that adding the _ISSCRIPT_NEW_STYLE_DLG_DEFS to the Build/Settings/Processor Defines, that I then got a more helpful C8014 'identifier already defined' compile errors on the same two functions as well as several other variables. Double click on each error and commented out each line and then the project results in a clean upgraded IS2011 build. I did not find any documentation in the 'Whats new...' or the 'Upgrading a project..." documents related to this issue, and Flexera has not responded to my Gold Maintenance request (opened prior to finding this solution) for support yet.
0 Kudos
DebbieL
Level 17

Right above the "InstallScript Header File Changes" section in the release notes (and in the "Upgrading Projects from InstallShield 2009 or Earlier" help topic), you should see this information:

InstallScript Dialog Source Code Changes
The InstallScript code for built-in InstallScript dialogs has been moved from individual InstallScript script files (.rul) to a single ISRTScriptDialogs.rul file. In addition, the event class drop-down list in the InstallScript view has a new Dialog Source option. If you select this option, the event handler drop-down list shows all of the built-in InstallScript dialogs. You can select any dialog in this list to customize its code.

InstallShield supports backwards compatibility: If you imported dialog source code into an InstallShield 2009 or earlier project and then you upgrade the project to InstallShield 2010, you can still use that dialog code. However, if you want to use the dialog sources that are now available when you select the dialogs in the event handler drop-down list, you must first make some changes to your upgraded project. Otherwise, you may encounter compile errors. In order to use the dialog code: On the Build menu, click Settings. On the Compile/Link tab, in the Preprocessor Defines box, enter the following:

_ISSCRIPT_NEW_STYLE_DLG_DEFS

After this definition has been added, if any dialogs had previously been imported into the project in earlier versions of InstallShield, the code in these imported .rul files may cause compile errors. These errors would need to be resolved.

If _ISSCRIPT_NEW_STYLE_DLG_DEFS is not defined, a warning message is displayed when the Dialog Source option is selected in the event class drop-down list in the InstallScript view.

The _ISSCRIPT_NEW_STYLE_DLG_DEFS definition is automatically added to all new projects that are created in InstallShield 2010.

This functionality applies to the following project types: InstallScript, InstallScript MSI, and InstallScript Object.


This seems to apply to your scenario.
0 Kudos
phill_mn
Level 7

Debbie thanks for the information from the document 'Upgrading Projects from InstallShield 2009 or earlier', which is right on point. However since I (and others have) indicated that we are upgrading projects previously built in InstallShield 2010, I searched the documentation related to 'Upgrading Projects from InstallShield 2010 or earlier' and did not find any of this information. But I am glad to hear Flexera provided the information. By the looks of the posts in this community there are a lot of users who are upgrading projects that build correctly in IS2010 but are now hitting this problem with IS2011, yet your post is the first response form Flexera with any information, even if it is in a document which a IS2010 user would not have thought to look at. Thanks. At least the response was more timely than the Support group's response to the SOIC which I opened the other day. Thanks you.
0 Kudos