-
Hi all!
I am using the following components and DLLs in my application; asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll, shdocvw.dll, comdlg32.ocx, mscomctl.ocx, msinet.ocx, msmapi32.ocx, stdole2.tlb, tabctl32.ocx, and sysinfo.ocx. I use Installer Vise for compiling my setup package. In order to avoid version conflicts of shared DLLs I have set the installation folder as program directory. Removed their shared property. This was seeming to work OK. However, after I have installed some other application, my app did not start because of a version conflict on mscomctl.ocx. This means that my app is not registered to use the local mscomctl but the one on the system folder. Thus, when the system file is supersed than it bumps.. How can I avoid my app from malfunctioning because of these component updates? If local installation is a solution, how can I register these files to my desired location? Should I copy all external files to a folder and edit the project file references?
HEELP!!
-
What you try to do is a feature of I believe w2k, with older windooz that wont work and therefor you need to put the dll's/ocx's in the system dir.
-
w2000?
Thanx, but I couldn't understand exactly, how you associated my problem with w2k?
-
You could register commonctl manually by shelling regsrv.exe (in silent mode) from withing your code
-
How will it help me?
How will it help me?
and
how do I do it?
-
Code:
Private Declare Function GetSystemDirectory Lib "Kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Property Get systemdir$()
Dim str As String * 256, length&
length = GetSystemDirectory(str, 256&)
systemdir = Left(str, length)
End Property
'in code
Shell systemdir & "\Regsvr32.exe /s " & systemdir & "\yourocx.ocx"