Solved

Install Shield and Formula One

Posted on 1998-09-30
10
189 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
  • 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
 
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
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
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

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Delphi OLE Error 8 82
Delphi : could not find program, '...exe' 2 115
delphi parse string to params 3 81
Create a path if not exists 7 41
A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

708 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

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now