问题
Opening a VB6 Project, I get errors like:
Errors during load. Refer to xyz.LOG
I open the log file and see these errors:
Line 42: Class Threed.SSPanel of control XYZ was not a loaded control class.
In this case I can see the problem is due to the Sheridan 3D Controls: C:\WINDOWS\system32\THREED32.OCX
I thought the project was missing a component so, VB6 > Project > Components > tick the Sheridan 3D Controls and got this error:
---------------------- Microsoft Visual Basic ---------------------------
Name conflicts with existing module, project, or object library
--------------------------- OK Help ---------------------------
回答1:
The way to troubleshoot this problem is to start a new VB6 project > Project Menu Components > tick the Components that are selected in the affected project until you get the error.
---------------------- Microsoft Visual Basic ---------------------------
Name conflicts with existing module, project, or object library
--------------------------- OK Help ---------------------------
You need to narrow it down to the two OCX's that are conflicting.
In my case I narrowed it down to Sheridan 3D Controls / THREED32.OCX and Outrider Spin Control / SPIN32.ocx
To fix the problem I used RegSvr32 to unregister the OCXs - make sure you UNregister with the /u flag.
REGSVR32 "C:\WINDOWS\system32\THREED32.OCX" /u
I then copied the OCX's to the project folder and registered them again using:
REGSVR32 "C:\Dev\Project\THREED32.OCX"
Then in the project with the problem > Project Menu Components > select the item in the listbox Sheridan 3D controls / THREED32.ocx (you cant tick without getting the error or untick the conflicting one that is selected as its in use) > click Browse and reference it from the project folder rather than C:\WINDOWS\system32\
Another trick is close the project and unregister the affected ocx - make sure you UNregister it with the /u flag, eg
RegSvr32 "c:\Windows\system32\mscomctl.ocx" /u
Then open the project > Components > and you should see the "Microsoft Windows Common Controls 6.0 (SP6)" is using a OCX file in C:...\Microsoft Vi..\VB98\mscomctl.ocx" rather than c:\Windows\system32\mscomctl.ocx.
The project should then load without these errors:
Errors during load. Refer to xyz.LOG
回答2:
I will give you the best way to get rid of this problem. I came across many ways, but this is the most best way to deal with..
Close the project. Right click on the vb project and open with notepad (not with vb). This Project file will only consist of all the references, libraries and information about forms and modules used in the project.
Now just remove the conflicting module or component file, you have problem, by just deleting the entire line.. Save and close it and now open the project and add component. I swear you wont get that error.
Thank you. Enjoy
来源:https://stackoverflow.com/questions/26835929/vb6-name-conflicts-with-existing-module-project-or-object-library