Archived Forum Post

Index of archived forum posts

Question:

Unresolved Visual C++ Externals

Apr 15 '13 at 11:10

What is the reason for the following unresolved externals?

1>test.obj : error LNK2028: unresolved token (0A000096) "public: virtual clrcall CkZip::~CkZip(void)" (??1CkZip@@$$FUAM@XZ) referenced in function "public: virtual void * clrcall CkZip::vector deleting destructor'(unsigned int)" (??_ECkZip@@$$FUAMPAXI@Z)
1>test.obj : error LNK2028: unresolved token (0A000097) "public: __clrcall CkMultiByteBase::CkMultiByteBase(void)" (??0CkMultiByteBase@@$$FQAM@XZ) referenced in function "private: __clrcall CkZip::CkZip(class CkZip const &)" (??0CkZip@@$$FAAM@ABV0@@Z)
1>test.obj : error LNK2028: unresolved token (0A00009B) "public: virtual __clrcall CkMultiByteBase::~CkMultiByteBase(void)" (??1CkMultiByteBase@@$$FUAM@XZ) referenced in function "public: virtual void * __clrcall CkMultiByteBase::vector deleting destructor'(unsigned int)" (??_ECkMultiByteBase@@$$FUAMPAXI@Z)
1>test.obj : error LNK2028: unresolved token (0A00009C) "public: virtual clrcall CkObject::~CkObject(void)" (??1CkObject@@$$FUAM@XZ) referenced in function "private: clrcall CkMultiByteBase::CkMultiByteBase(class CkMultiByteBase const &)" (??0CkMultiByteBase@@$$FAAM@ABV0@@Z)
1>test.obj : error LNK2028: unresolved token (0A00009D) "public: clrcall CkObject::CkObject(void)" (??0CkObject@@$$FQAM@XZ) referenced in function "private: clrcall CkMultiByteBase::CkMultiByteBase(class CkMultiByteBase const &)" (??0CkMultiByteBase@@$$FAAM@ABV0@@Z)
1>test.obj : error LNK2019: unresolved external symbol "public: clrcall CkObject::CkObject(void)" (??0CkObject@@$$FQAM@XZ) referenced in function "private: clrcall CkMultiByteBase::CkMultiByteBase(class CkMultiByteBase const &)" (??0CkMultiByteBase@@$$FAAM@ABV0@@Z)
1>test.obj : error LNK2019: unresolved external symbol "public: virtual clrcall CkObject::~CkObject(void)" (??1CkObject@@$$FUAM@XZ) referenced in function "private: clrcall CkMultiByteBase::CkMultiByteBase(class CkMultiByteBase const &)" (??0CkMultiByteBase@@$$FAAM@ABV0@@Z)
1>test.obj : error LNK2019: unresolved external symbol "public: virtual clrcall CkMultiByteBase::~CkMultiByteBase(void)" (??1CkMultiByteBase@@$$FUAM@XZ) referenced in function "public: virtual void * clrcall CkMultiByteBase::vector deleting destructor'(unsigned int)" (??_ECkMultiByteBase@@$$FUAMPAXI@Z)
1>test.obj : error LNK2019: unresolved external symbol "public: __clrcall CkMultiByteBase::CkMultiByteBase(void)" (??0CkMultiByteBase@@$$FQAM@XZ) referenced in function "private: __clrcall CkZip::CkZip(class CkZip const &)" (??0CkZip@@$$FAAM@ABV0@@Z)
1>test.obj : error LNK2019: unresolved external symbol "public: virtual __clrcall CkZip::~CkZip(void)" (??1CkZip@@$$FUAM@XZ) referenced in function "public: virtual void * __clrcall CkZip::vector deleting destructor'(unsigned int)" (??_ECkZip@@$$FUAMPAXI@Z)


Answer

The Chilkat C++ libs are unmanaged libs, not Managed C++. Notice the "__clrcall" in the error messages. If using Managed C++ in MSVC++, then make sure to wrap the include statements in "pragma unmanaged".

#pragma unmanaged
#include "CkZip.h"
#pragma managed

Alternatively, it is possible to use the Chilkat .NET assembly from Managed C++.