Aug 31, 2015 at 8:27pm UTC
I've been in the process of migrating a development environment project from xp 32bit to windows 7 32bit. The main issue I've been having all revolve around the microsoft activex data object (ado) component/library. This project is coded in vb6 and vc6.
One of the problems that was caused originally was within the vb6 applications. It would say "automation error" on lines like this:
Set oADOConn = New ADODB.Connection
I've read that changing to late binding gets around that compiler error.
Then I make this change:
Set oADOConn = CreateObject("ADODB.Connection")
and the compiler error goes away
After making that change I hit runtime errors from one of the vc6 project. I've found the problems vary depending on what version of the msado15.dll I am using.
When I use version 2.10.3711.9 of msado15.dll, then the projects compile fine but then I get the runtime errors listed above. But if I use version 6.1.7601.17857 of msado15.dll then I get all of these linker errors with that same project that was having the runtime error:
Generating Code...
Linking...
Creating library ..\..\..\bin/CatalogDAL.lib and object ..\..\..\bin/CatalogDAL.exp
LINK : warning LNK4199: /DELAYLOAD:mtxex.dll ignored; no imports found from mtxex.dll
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
Code.obj : error LNK2001: unresolved external symbol "public: void __thiscall Field20::PutValue(class _variant_t const &)" (?PutValue@Field20@@QAEXABV_variant_t@@@Z)
... (snipped because of 9000 character limit here)
(?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
Code.obj : error LNK2001: unresolved external symbol "public: class _com_ptr_t<class _com_IIID<struct Fields,&struct __s_GUID _GUID_00001564_0000_0010_8000_00aa006d2ea4> > __thiscall Recordset15::GetFields(void)" (?GetFields@Recordset15@@QAE?AV?$_com_ptr_t@V?$_com_IIID@UFields@@$1?_GUID_00001564_0000_0010_8000_00aa006d2ea4@@3U__s_GUID@@A@@@@XZ)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
Code.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorType(enum CursorTypeEnum)" (?PutCursorType@Recordset15@@QAEXW4CursorTypeEnum@@@Z)
VocabularyCode.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
CodeDescription.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
LinkedCatalog.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
LinkedItem.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
Vocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
CatalogDAL.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
CatalogDAL1.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
CatalogVocabulary.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
Code.obj : error LNK2001: unresolved external symbol "public: void __thiscall Recordset15::PutCursorLocation(enum CursorLocationEnum)" (?PutCursorLocation@Recordset15@@QAEXW4CursorLocationEnum@@@Z)
..\..\..\bin/CatalogDAL.dll : fatal error LNK1120: 12 unresolved externals
Error executing link.exe.
CatalogDAL.dll - 109 error(s), 2 warning(s)
*** END: Build Failure
Building CatalogTXLLib.dsp
... failed
*** BEGIN: Build Failure [CatalogTXLLib.dsp]
The program seems functional when I build the project while using version 2.10.3711.9 of msado15.dll and then start using version 6.1.7601.17857 of that dll to run the program. But ideally I would not want to be constantly switching dll's to have a functional application. I've seem to have exhausted everything on google about this matter. I've tried installing hotfix, service packs, registering ocx's, registering library files. But the problem remains. Any ideas what can be done to fix this?