Solved

Install Shield and Formula One

Posted on 1998-09-30
10
197 Views
Last Modified: 2010-04-06
I have written an application using the Formula One component.
I have created the intall program with IS Express 1.11a.
When I install it in other computer and try to run it, the computer sends the message "UNREGISTERED CLASS".
I have added the files VCF132.OCX, MFCANS32.DLL, OC30.DLL, MSVCRT20.DLL in the instalation program.

What goes wrong??

Gilberto
0
Comment
Question by:gmsacoda
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
10 Comments
 

Author Comment

by:gmsacoda
ID: 1341260
Adjusted points to 100
0
 
LVL 4

Expert Comment

by:BoRiS
ID: 1341261
gmsacoda

you need to register the ocx etc.

this can be done in tw ways through your code using

regsvr32 [/u] [/s] <DLLname or OCXname>
                                    /u - if you want to unregister COMponent
                                    /s - no message (silent) //use this param for behind the scenes...

or through installshield its self...

this information is taking from
http://support.installshield.com/kb/default.asp?action=Display&documents_id=651 

    All editions of InstallShield Express automatically register any .dll, .exe and .ocx file containing the "OLESelfRegister" string in the
    version
                        resource.

                        Note: The 1.1 version of InstallShield Express Professional will also check .olb files for the "OLESelfRegister" flag.

                        You can check to see if a third-party .ocx or .dll file contains this resource by opening the .dll or .ocx file using Borland
    Resource Workshop or
                        MSVC++ and then checking the `Version Information` resource for the following value:

                        VALUE "OLESelfRegister", "\0"

                        To include this resource in your own DLLs, create an extra string value field in the version resource for the .dll/.ocx file. This
    value should have
                        the name OLESelfRegister. The data for this value is ignored and can be set to "".

                        MSVC++ does not currently allow you to add a new value field to the `Version Information` resource. If you are using
    MSVC++, you will need to
                        add this value directly to the .RC file for your project. You can use any convenient text editor to edit this file and add
    OLESelfRegister to the
                        existing values in the .RC file. Make sure you rebuild your .dll/.ocx file after making this change.

                        After you add this string, the version information block will look something like this:

                          /////////////// Begin sample

                          VS_VERSION_INFO VERSIONINFO
                          FILEVERSION 1,0,0,1
                          PRODUCTVERSION 1,0,0,1
                          FILEFLAGSMASK 0x3fL
                          #ifdef _DEBUG
                          FILEFLAGS 0x1L
                          #else
                          FILEFLAGS 0x0L
                          #endif
                          FILEOS 0x40004L
                          FILETYPE 0x2L
                          FILESUBTYPE 0x0L
                          BEGIN
                          BLOCK "StringFileInfo"
                          BEGIN
                          BLOCK "040904b0"
                          BEGIN
                          VALUE "CompanyName", "InstallShield\0"
                          VALUE "FileDescription", "RESDLL\0"
                          VALUE "FileVersion", "1, 0, 0, 1\0"
                          VALUE "InternalName", "RESDLL\0"
                          VALUE "LegalCopyright", "Copyright _ 1996\0"
                          VALUE "OriginalFilename", "RESDLL.dll\0"
                          VALUE "ProductName", "InstallShield RESDLL\0"
                          VALUE "ProductVersion", "1, 0, 0, 1\0"
                          VALUE "OLESelfRegister","\0"
                          END
                          END
                          BLOCK "VarFileInfo"
                          BEGIN
                          VALUE "Translation", 0x409, 1200
                          END
                          END
                          /////////////// End sample


                        With InstallShield Express2 and Express Professional, you can manually add the following section to the Swdepend.ini file
    used for the
                        installation:

                        [DLLNAME.DLL]

                        Register=$(DLLSelfRegister)

Later
BoRiS
0
 
LVL 4

Accepted Solution

by:
BoRiS earned 100 total points
ID: 1341262
gmsacoda

you need to register the ocx etc.

this can be done in tw ways through your code using

regsvr32 [/u] [/s] <DLLname or OCXname>
                                    /u - if you want to unregister COMponent
                                    /s - no message (silent) //use this param for behind the scenes...

or through installshield its self...

this information is taking from
http://support.installshield.com/kb/default.asp?action=Display&documents_id=651 

    All editions of InstallShield Express automatically register any .dll, .exe and .ocx file containing the "OLESelfRegister" string in the
    version
                        resource.

                        Note: The 1.1 version of InstallShield Express Professional will also check .olb files for the "OLESelfRegister" flag.

                        You can check to see if a third-party .ocx or .dll file contains this resource by opening the .dll or .ocx file using Borland
    Resource Workshop or
                        MSVC++ and then checking the `Version Information` resource for the following value:

                        VALUE "OLESelfRegister", "\0"

                        To include this resource in your own DLLs, create an extra string value field in the version resource for the .dll/.ocx file. This
    value should have
                        the name OLESelfRegister. The data for this value is ignored and can be set to "".

                        MSVC++ does not currently allow you to add a new value field to the `Version Information` resource. If you are using
    MSVC++, you will need to
                        add this value directly to the .RC file for your project. You can use any convenient text editor to edit this file and add
    OLESelfRegister to the
                        existing values in the .RC file. Make sure you rebuild your .dll/.ocx file after making this change.

                        After you add this string, the version information block will look something like this:

                          /////////////// Begin sample

                          VS_VERSION_INFO VERSIONINFO
                          FILEVERSION 1,0,0,1
                          PRODUCTVERSION 1,0,0,1
                          FILEFLAGSMASK 0x3fL
                          #ifdef _DEBUG
                          FILEFLAGS 0x1L
                          #else
                          FILEFLAGS 0x0L
                          #endif
                          FILEOS 0x40004L
                          FILETYPE 0x2L
                          FILESUBTYPE 0x0L
                          BEGIN
                          BLOCK "StringFileInfo"
                          BEGIN
                          BLOCK "040904b0"
                          BEGIN
                          VALUE "CompanyName", "InstallShield\0"
                          VALUE "FileDescription", "RESDLL\0"
                          VALUE "FileVersion", "1, 0, 0, 1\0"
                          VALUE "InternalName", "RESDLL\0"
                          VALUE "LegalCopyright", "Copyright _ 1996\0"
                          VALUE "OriginalFilename", "RESDLL.dll\0"
                          VALUE "ProductName", "InstallShield RESDLL\0"
                          VALUE "ProductVersion", "1, 0, 0, 1\0"
                          VALUE "OLESelfRegister","\0"
                          END
                          END
                          BLOCK "VarFileInfo"
                          BEGIN
                          VALUE "Translation", 0x409, 1200
                          END
                          END
                          /////////////// End sample


                        With InstallShield Express2 and Express Professional, you can manually add the following section to the Swdepend.ini file
    used for the
                        installation:

                        [DLLNAME.DLL]

                        Register=$(DLLSelfRegister)

Later
BoRiS
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 4

Expert Comment

by:BoRiS
ID: 1341263
gmsacoda

sorry about the comment clicked the wrong box...

Later
BoRiS
0
 

Author Comment

by:gmsacoda
ID: 1341264
Thank you Boris,

I could run a program after have registered 2 of the four files requested by formula one.
I have used REGSVR32 to register these files.
But some questions remains. I´d like you to give me some more informations.

1. REGSVR32 was not present in the computer. I had to copy from    my computer. What software loads this program?
2. I want to send the installation program to the user. I dont    want the user to use REGSVR32 to register the components. Then    I need the IS Express to generate a instalation program to       register all necessary components.

Regards
Gilberto
0
 
LVL 4

Expert Comment

by:BoRiS
ID: 1341265
gmsacoda

If regsrv32 is not present on a machine you may copy it to that machine, but what you need to do as you are sending an installshield version, is in the resource file of the your program add this code ...

VALUE "OLESelfRegister","\0"

if you are using installshield express 2 or professional then you just need to add this line of code to the SWdepend.ini file of the installation

[DLLNAME.DLL] //ini heading
Register=$(DLLSelfRegister) //code under heading...

OR

[OCXNAME.OCX] //ini heading
Register=$(OCXSelfRegister) //code under heading...

Later
BoRiS
0
 

Author Comment

by:gmsacoda
ID: 1341266
BoRis

I have tried but I could not find how and where to add the code you have suggested.

According to Delphi Help, the resource file has the same name of the application with .RES termination. This file is not an ASCII file and I don't know how to edit it.

I need some more help
Regards
Gilberto



0
 
LVL 4

Expert Comment

by:BoRiS
ID: 1341267
what version of the install shield are you using...

you will need a resourse editor to edit the resouce file, or create your own...
for more info on creating an resource file check the delphi help file /search for resource DLL, creating...

it will explain how to use the resource dll wizard, this will create an .rc for you etc...

Later
BoRiS
0
 

Author Comment

by:gmsacoda
ID: 1341268

I am using the version 1.11.

I´ll try to edit

Gilberto


0
 

Author Comment

by:gmsacoda
ID: 1341269
Boris

I´ve got a new version of the IS Express and used it to create a installation program.
Then the apllication run without problems.

Thanks
Gilberto
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Michael from AdRem Software explains how to view the most utilized and worst performing nodes in your network, by accessing the Top Charts view in NetCrunch network monitor (https://www.adremsoft.com/). Top Charts is a view in which you can set seve…
If you’ve ever visited a web page and noticed a cool font that you really liked the look of, but couldn’t figure out which font it was so that you could use it for your own work, then this video is for you! In this Micro Tutorial, you'll learn yo…

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question