PRB: Error Converting Visual C++ OLE Controls from 2.x to 4.0 (139457)
The information in this article applies to:
- Microsoft Visual C++ 2.0
- Microsoft Visual C++ 2.1
- Microsoft Visual C++ 2.2
- Microsoft Visual C++ 4.0
- Microsoft OLE Control Developer's Kit (CDK)
This article was previously published under Q139457 SYMPTOMS
When you use the following procedure to convert a project built with the
CDK that shipped with Visual C++ 2.x to Visual C++ 4.0, the following error
appears:
Linking...
LINK : fatal error LNK1104: cannot open file "ocs30d.lib"
Error executing link.exe.
circ1.ocx - 1 error(s), 0 warning(s)
Conversion Procedure- On the File menu, click Open Workspace.
- Browse to the project directory.
- List files of type *.mak.
- Select the 32-bit project file.
- Click Rebuild All. After it tries to link, the following error message
will appear:
Linking...
LINK : fatal error LNK1104: cannot open file "ocs30d.lib"
Error executing link.exe.
circ1.ocx - 1 error(s), 0 warning(s)
The actual .lib file that is displayed will be one of four variants of
the Ocs30*.lib file depending on how the project is being built.
CAUSE
The reason that the specified file cannot be found is that it no longer
exists in Visual C++ version 4.0. Because the Ocs30* libraries were
variants of the MFC libraries, the functionality was merged with the
Mfc40*.dll. This had several advantages, including better code reuse as one
MFC .dll file can be used for both the OLE Control container and the OLE
control. The problem is that the ocs30*.lib file is included within the
Settings, Link page thereby giving the error Ocs30*.lib cannot be found.
RESOLUTION
Change the settings so that Visual C++ version 4.0 is no longer trying to
link in the Ocs30*.lib file. This can be done by following these steps:
- On the Build menu, click Settings, and then click the Link tab.
- Click the first of the four project build options under Settings For.
- Delete Ocs30d.lib from the edit field under Object/Library Modules.
- Click each of the other three project build options and repeat step 3.
Now when you build your project it will use the Mfc40*.dll as designed.
STATUS
This behavior is by design.
Modification Type: | Major | Last Reviewed: | 12/8/2003 |
---|
Keywords: | kbCtrlCreate kbNoUpdate kbprb KB139457 |
---|
|