我有一个实用程序,我需要在Windows 2000机器上运行。它包括<comadmin.h>在Visual Studio 2019中,它编译得很好,我不需要指定任何额外的.lib文件。我删除了所有C11及更高版本的代码,编译完成,但链接失败。在Windows XP上的VC6中,使用Windows Server 2003 SP1 Platform SDK,得到以下错误:
ComPlus.obj : error LNK2001: unresolved external symbol _IID_ICatalogObject
ComPlus.obj : error LNK2001: unresolved external symbol _IID_ICatalogCollection
ComPlus.obj : error LNK2001: unresolved external symbol _CLSID_COMAdminCatalog
Debug/ComPlus.exe : fatal error LNK1120: 3 unresolved externals
我试过包含comsupp.lib和comsvcs.lib,但没有用。示例代码:
CComQIPtr <ICOMAdminCatalog> pCatalog;
HRESULT hr = pCatalog.CoCreateInstance(CLSID_COMAdminCatalog);
平台SDK文档指定:
Platforms: Windows 2000, Windows XP, Windows Server 2003
Header: Declared in comadmin.h
Library: Included as a resource in comadmin.dll
尝试将comadmin.dll指定为库,但建议其格式错误。DLL具有如下所示的TYPELIB资源:
使用这个需要什么配置,或者它必须针对这个旧的SDK进行不同的编码?
1条答案
按热度按时间djmepvbi1#
问题是Platform SDK文档似乎没有引用要包含的正确lib文件。
我必须将SvcGuid.Lib与
但是,调试构建不起作用,因为VC++6抛出错误
虽然发布构建工程发现与此库包括在内。