|
-
Aug 10th, 2007, 09:06 AM
#1
comdlg32 not found?
Hey,
I made a program in Vista using VB6 and it uses the common dialog control.
I made an installscript using Inno Setup 5.
When I install the program, all is fine.
When most other users install the program, all is fine.
However, there are a few people I have heard from that get the following error:
Code:
run-time error "339":
component 'comdlg32.ocx' or one of its dependencies is not registered : a file is missing or invalid.
comdlg32 Is the common dialog control right? Isn't that supposed to come with windows, since windows uses it aswell?! Or is this merely a 'copy' of the windows dialog?
Why is InnoSetup not distributing this file, while it is distributing all other ocx files I use? (About 5 of them)...
Some of the users having this problem run XP and some run Vista...
What should I do?
-
Aug 10th, 2007, 09:09 AM
#2
Re: comdlg32 not found?
Moved to Application Deployment
-
Aug 10th, 2007, 09:21 AM
#3
Re: comdlg32 not found?
Thanks, should have noticed that... :P
-
Aug 10th, 2007, 04:16 PM
#4
Re: comdlg32 not found?
Don't quote me on this but I don't think Vista comes with that file. I sent my game to people. One of them has Vista & the other have XP. The person with Vista got that error. I had to include the file with the game and all was solved. I don't know much about Inno but if it's possible, try manually adding the file to your setup.
[vb5 & starting to move to vb2008] I appreciate the help I get from everyone. Thank you. 
-
Aug 10th, 2007, 07:55 PM
#5
Re: comdlg32 not found?
Why would you think Inno Setup would automatically distribute that file? Inno Setup will not distribute anything other than what you tell it too.
-
Aug 11th, 2007, 11:01 AM
#6
Re: comdlg32 not found?
Are you sure? Because there are a few ocx files like this that it automatically placed in the windows folder afaik, without me telling it to :S
I will doublecheck it!
I now have Win XP, completely clean, installed on VMware so I can quickly try it out...
EDIT
After checking I indeed do not see any ocx files listed in the .iss setup script file.
So I should add all of them manually? I'm pretty sure the old installer I used did this automatically.
Is there any way to see which OCX's are used by the program? Some plugin for VB6 maybe? I have no idea which files i'm using exactly :S
Also, should I even distribute OCX files that the users may already have?
Last edited by NickThissen; Aug 11th, 2007 at 11:11 AM.
-
Aug 11th, 2007, 02:27 PM
#7
Re: comdlg32 not found?
Until randem gets a chance to respond, I'll take a crack at it. I believe but I'm not sure, that randem had told me that Inno actually can tell you what dependencies your program has. However, there are two are ways to find out. I think there might be other programs that tell you what your program needs to run. You'll have to search the net. The way I do it is by testing it out on a "clean" pc and seeing what files it says the exe is missing. Normally, you could just include the vb6 runtime files, which is basically what people need. Then any other controls that you used are also needed to add to the setup. For example, if you used the DIALOG control, then you need the COMDLG32 ocx. If you used the TABBED control, you need the TBCL32 ocx. You can find out what ocx/dll you need by going to the components (ctrl + t) and seeing what controls you have checked. If you click on them once, they tell you the path and name of the control.
[vb5 & starting to move to vb2008] I appreciate the help I get from everyone. Thank you. 
-
Aug 11th, 2007, 02:50 PM
#8
Re: comdlg32 not found?
Thanks, I did just that a few minutes ago and tried it.
I added the following lines to the Inno setup script:
Code:
Source: "V:\Windows\system32\comdlg32.ocx"; DestDir: "{win}\system32"; Flags: ignoreversion
(And the same with other ocx files)
Then installed it again in my clean XP install, and got the same error. I checked in the windows/system32 folder and the files I added were not there.
Apart from comdlg32.ocx, that seems to have been there by default?
-
Aug 11th, 2007, 02:56 PM
#9
Re: comdlg32 not found?
Maybe it's a problem with VMWARE. Perhaps Inno can't install those files on a virtual environment. Don't you have any old pc laying around that you can try this on? Or maybe Inno isn't saving the appropriate paths you're telling it to?
[vb5 & starting to move to vb2008] I appreciate the help I get from everyone. Thank you. 
-
Aug 11th, 2007, 04:18 PM
#10
Re: comdlg32 not found?
I don't think it's VMware's fault. Afaik, the main reason it serves is doing just this, testing your programs on other OS's quickly without having to buy a PC for each OS. Would be odd if something this simple didn't work...
I think it's got more to do with my knowledge (or lack thereof) about installing, Inno Setup and the likes...
-
Aug 11th, 2007, 04:46 PM
#11
Re: comdlg32 not found?
Yes, I know what VMWARE is. I have used it myself and have found that it isn't 100% effective so that people can just depend on virtual OSes without any real ones. It has it's downfalls.
If you like, I have a clean pc. Attach your app with its setup to the post and I'll install it on that pc and see what files it tells me it's missing. Make sure to tell me what files you are installing and where they are being installed so I can delete them afterwards. The reason for this is that I want to keep my pc "clean" for future programs.
[vb5 & starting to move to vb2008] I appreciate the help I get from everyone. Thank you. 
-
Aug 11th, 2007, 05:00 PM
#12
Re: comdlg32 not found?
Well, the setup file can be found here:
(It's about 800 kb which is too big for the forum apparently. Just click "Free" at the bottom and enter the validation code.)
http://rapidshare.com/files/48405440/setup.zip.html
Here's the install script from Inno Setup so you can see exactly what I'm installing:
Code:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
[Setup]
AppName=ETScript
AppVerName=ETScript 0.5
AppPublisher=Nick Thissen
DefaultDirName={pf}\ETScript
DefaultGroupName=ETScript
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "V:\Users\Administrator\Desktop\ONTW\VB6\ETScript\ETScript.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "V:\Users\Administrator\Desktop\ONTW\VB6\ETScript\Resources\*"; DestDir: "{app}\Resources"; Flags: ignoreversion
Source: "V:\Users\Administrator\Desktop\ONTW\VB6\ETScript\EditScriptRef_Readme.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "V:\Users\Administrator\Desktop\ONTW\VB6\ETScript\ETScript.exe.manifest"; DestDir: "{app}"; Flags: ignoreversion
Source: "V:\Users\Administrator\Desktop\ONTW\VB6\ETScript\icon.ico"; DestDir: "{app}"; Flags: ignoreversion
Source: "V:\Users\Administrator\Desktop\ONTW\VB6\ETScript\preset.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "V:\Users\Administrator\Desktop\ONTW\VB6\ETScript\readme.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "V:\Users\Administrator\Desktop\ONTW\VB6\ETScript\scriptref.mdb"; DestDir: "{app}"; Flags: ignoreversion
; OCX
Source: "V:\Windows\system32\tdbg6.ocx"; DestDir: "{win}\system32"; Flags: ignoreversion
Source: "V:\Windows\system32\comdlg32.ocx"; DestDir: "{win}\system32"; Flags: ignoreversion
Source: "V:\Users\Administrator\Desktop\ONTW\VB6\SBList\SBList30.ocx"; DestDir: "{win}\system32"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\ETScript"; Filename: "{app}\ETScript.exe"
Name: "{group}\{cm:UninstallProgram,ETScript}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\ETScript"; Filename: "{app}\ETScript.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\ETScript"; Filename: "{app}\ETScript.exe"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\ETScript.exe"; Description: "{cm:LaunchProgram,ETScript}"; Flags: nowait postinstall skipifsilent
If you can find anything I'm doing wrong... please tell me ^^
EDIT
The program can also add registry settings in "HKEY_CURRENT_USER\Software\VB and VBA Program Settings\ETScript\..."
-
Aug 11th, 2007, 05:51 PM
#13
Re: comdlg32 not found?
All right. I tested it out on my clean pc. I don't know much at all of Inno other than it's a program used with setups. However, I don't think you're doing anything wrong with it. I really believe it's VMWARE. It isn't 100% reliable. You said you checked your virtual os after installing your program in it and didn't see any of the files you specified in Inno correct? Well, I just used your own setup on my real pc and your setup worked. It added the COMDLG32, TDBG6 & SBLIST ocx to my SYSTEM32 folder. I have to check for the other files later. However, when I tried to run the program itself, it said it was missing 1 ocx. You forgot to include this file: MSCOMCTL.OCX.
[vb5 & starting to move to vb2008] I appreciate the help I get from everyone. Thank you. 
-
Aug 11th, 2007, 09:55 PM
#14
Re: comdlg32 not found?
Inno Setup won't tell you bupkus, ********** will. Please understand the difference. You are using the Inno Setup Wizard, it will not tell you anything about what you need to deploy.
You can alway do the trial and error technique though...
-
Aug 12th, 2007, 04:18 AM
#15
Re: comdlg32 not found?
Well this can't be right, I tried to do some changes in the script, Uninstalled the program so I could try the new script, and then noticed that the OCX files I told it to add are now deleted aswell!
This can't be right, can it? Because I need them! Maybe other people don't, but ...
I just can't get it... How should I install this?
-
Aug 12th, 2007, 04:24 AM
#16
Re: comdlg32 not found?
Uninstalled your installed program??? Yes, this can be true if you used the wrong flags...
But who listens to me...
-
Aug 12th, 2007, 04:33 AM
#17
Re: comdlg32 not found?
********** ---- Inno Setup Wizard
hmmm, I can't seem to find the connection...
-
Aug 12th, 2007, 02:53 PM
#18
Re: comdlg32 not found?
Code:
; ********** Version 7.2 Build 0 Beta
; Randem Systems, Inc.
; Copyright 2003-2007
; Website: http://www.***********
; Support: http://www.**********.com/cgi-bin/discus/discus.cgi
; OS: Windows XP 5.1 build 2600 (Service Pack 2)
; Date: August 12, 2007
; VB Runtime Files Folder: E:\Server Data\Randem\Develop\**********\VB 6 Redist Files\
; Visual Basic Project File (.vbp): E:\Works\NickThissen\ETScript\ETScript.vbp
; Inno Setup Script Output File (.iss): E:\Works\NickThissen\ETScript\Scripts\ETScript Beta.iss
; Script Template Files (.tpl): E:\Server Data\Randem\Develop\**********\Templates\Beta.tpl
; : E:\Server Data\Randem\Develop\**********\Templates\VBRuntime.tpl
; : E:\Server Data\Randem\Develop\**********\Templates\Vista.tpl
; ------------------------
; References
; ------------------------
; Visual Basic runtime objects and procedures - (MSVBVM60.DLL)
; OLE Automation - (STDOLE2.TLB)
; Microsoft ActiveX Data Objects 2.8 Library - (msado15.dll)
; Microsoft Data Formatting Object Library 6.0 (SP6) - (MSSTDFMT.DLL)
; Microsoft DAO 3.6 Object Library - (dao360.dll)
; JET Expression Service Type Library - (MSJTES40.DLL)
; Microsoft Shell Controls And Automation - (SHELL32.dll)
; Microsoft Remote Data Object 2.0 - (MSRDO20.DLL)
; --------------------------
; Components
; --------------------------
; Microsoft Common Dialog Control 6.0 (SP6) - (comdlg32.ocx)
; avHyperLink Label Control - (avhyperlink.ocx)
; Microsoft RemoteData Control 6.0 (SP3) - (MSRDC20.OCX)
; Microsoft Winsock Control 6.0 (SP6) - (mswinsck.ocx)
; APEX True DBGrid Pro 6.0 - (tdbg6.ocx)
; Microsoft Tabbed Dialog Control 6.0 (SP6) - (tabctl32.ocx)
; Microsoft DataGrid Control 6.0 (SP6) (OLEDB) - (MSDATGRD.OCX)
; Microsoft ADO Data Control 6.0 (SP6) (OLEDB) - (MSADODC.OCX)
; Microsoft FlexGrid Control 6.0 (SP6) - (MSFLXGRD.OCX)
; Microsoft Hierarchical FlexGrid Control 6.0 (SP4) (OLEDB) - (mshflxgd.ocx)
[Setup]
;UsePreviousAppDir=no
AppId=********** Beta
;-----------------------------------------------------------------------------------------------------
; Taken from VBP Project File Parameters AppName, AppName AppVersion and Company
;-----------------------------------------------------------------------------------------------------
AppName=ETScript
AppVerName=ETScript 0.5.2
AppPublisher=Randem Systems
;-----------------------------------------------------------------------------------------------------
AppVersion=0.5.2
VersionInfoVersion=0.5.2
AllowNoIcons=no
DefaultGroupName=ETScript
DefaultDirName={code:GetAppFolder}\ETScript
AppCopyright=
PrivilegesRequired=Admin
MinVersion=4.0,4.0
Compression=lzma
OutputBaseFilename=ETScript052Beta
[Tasks]
Name: AutoOSUpdater; Description: Install MDAC's for Database Operations; GroupDescription: Install MDAC's:
[Files]
Source: e:\server data\randem\develop\support\scripts\output\vb_dcom_mdac_jet_autosetup.exe; DestDir: {tmp}; Flags: deleteafterinstall ignoreversion nocompression;
Source: e:\server data\randem\develop\deployable system files\msstdfmt.dll; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\richtx32.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\comdlg32.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\mscomctl.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\works\nickthissen\etscript\avhyperlink.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\msrdc20.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\mswinsck.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\works\nickthissen\etscript\tdbg6.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\tabctl32.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\msdatgrd.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: c:\program files\common files\microsoft shared\dao\dao360.dll; DestDir: {cf}\microsoft shared\dao\; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\msadodc.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\msflxgrd.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\mshflxgd.ocx; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\works\nickthissen\etscript\etscript.exe; DestDir: {app}; Flags: ignoreversion;
Source: e:\server data\randem\develop\deployable system files\vb5db.dll; DestDir: {sys}; Flags: sharedfile;
Source: e:\server data\randem\develop\deployable system files\msrdo20.dll; DestDir: {sys}; Flags: regserver restartreplace sharedfile;
Source: e:\server data\randem\develop\deployable system files\rdocurs.dll; DestDir: {sys}; Flags: sharedfile;
Source: E:\Works\NickThissen\ETScript\Scripts\Manifest\ETScript.exe.manifest; DestDir:{app}; Flags: ignoreversion
[INI]
Filename: {app}\ETScript.url; Section: InternetShortcut; Key: URL; String:
[Icons]
Name: {group}\ETScript; Filename: {app}\ETScript.exe; WorkingDir: {app}
Name: {group}\{cm:ProgramOnTheWeb, ETScript}; Filename: {app}\ETScript.url
Name: {group}\{cm:UninstallProgram, ETScript}; Filename: {uninstallexe}
[Run]
Filename: {tmp}\VB_DCOM_MDAC_JET_AutoSetup.exe; Parameters: /NORESTART /VERYSILENT; WorkingDir: {tmp}; Flags: skipifdoesntexist; Tasks: AutoOSUpdater
Filename: {app}\ETScript.exe; Description: {cm:LaunchProgram, ETScript}; Flags: nowait postinstall skipifsilent; WorkingDir: {app}
[UninstallDelete]
Type: files; Name: {app}\ETScript.url
[Registry]
Root: HKCU; Subkey: Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers; ValueType: string; ValueName: {app}\ETScript.exe; ValueData: RUNASADMIN; Flags: uninsdeletevalue
Root: HKLM; Subkey: Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers; ValueType: string; ValueName: {app}\ETScript.exe; ValueData: WINXPSP2; Flags: uninsdeletevalue
[Code ]
function GetAppFolder(Param: String): String;
begin
if InstallOnThisVersion('0,6', '0,0') = irInstall then
Result := 'C:\Users\Public\' + ExpandConstant('{username}')
else
Result := ExpandConstant('{pf}');
end;
Last edited by randem; Aug 12th, 2007 at 03:02 PM.
-
Aug 12th, 2007, 03:25 PM
#19
Re: comdlg32 not found?
Wow, it is working perfectly now on my VM!
Thanks a LOT!!
Just got 2 questions,
1. The 'ETScript on the Web' start menu entry is a cool touch but does not work. Where can I specify the right URL?
2. How can I add a shortcut to the desktop + quick menu (and ask the user if they want this or not?)
But even without that it's great! Thanks alot again!
-
Aug 12th, 2007, 03:30 PM
#20
Re: comdlg32 not found?
The 'ETScript on the Web' does not work for the url needs to be changed. It is empty currently. You add the url in the {app}\ETScript.url file.
If you use ********** all those things are done for you automatically.
And you thought there was no difference...
-
Aug 12th, 2007, 03:37 PM
#21
Re: comdlg32 not found?
BTW: I did not include the database in the script.
-
Aug 12th, 2007, 03:39 PM
#22
Re: comdlg32 not found?
I didn't "not know there was a difference", I simply didn't know InnoSetup and ********** were different things... I mean, the names nearly match lol...
Sorry bout that!
How can I add the url in the file, since the file is created during the install, right?
And another thing, what's the MDAC install thingy? Just curious...
EDIT
You didn't add most files the program needs, but that's ok, I added them myself
-
Aug 12th, 2007, 03:45 PM
#23
Re: comdlg32 not found?
Well,
Inno Setup is two words and ********** is one word.
The links go to two different sites
The documentation states that they are two different companies
etc, etc...
Check the second line of my signature... 
The AutoOSUpdater
-
Aug 12th, 2007, 03:52 PM
#24
Re: comdlg32 not found?
Ok thanks.
Still don't know how to add the URL...
I tried 'playing' with this line:
Code:
Filename: {app}\ETScript.url; Section: InternetShortcut; Key: URL; String:
But the same problem (it says the Target of the file is empty) persists.
-
Aug 12th, 2007, 03:57 PM
#25
Re: comdlg32 not found?
Use ********** and don't worry about it...
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|