gmsacoda
asked on
Install Shield and Formula One
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
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
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
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
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
gmsacoda
sorry about the comment clicked the wrong box...
Later
BoRiS
sorry about the comment clicked the wrong box...
Later
BoRiS
ASKER
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
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
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
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
OR
[OCXNAME.OCX] //ini heading
Register=$(OCXSelfRegister
Later
BoRiS
ASKER
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
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
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
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
ASKER
I am using the version 1.11.
I´ll try to edit
Gilberto
ASKER
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
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
ASKER