如何正确使用INetSharingManager? 我是一个新手C++程序员,使用C++ Builder XE3,我有一个不错的Delphi后台,我试着用iNETSARIGN管理器,但是它给了我一个错误信息:

如何正确使用INetSharingManager? 我是一个新手C++程序员,使用C++ Builder XE3,我有一个不错的Delphi后台,我试着用iNETSARIGN管理器,但是它给了我一个错误信息:,c++,delphi,interface,firewall,C++,Delphi,Interface,Firewall,E2352无法创建抽象类“INetSharingManager”的实例 这是我使用的代码: INetSharingManager* NSManager = new INetSharingManager(); 我的问题是: 如何正确使用C++中的InSeaSunMeMeor? 以及如何在Delphi中使用INetSharingManager(如果可能的话) 提前感谢。这是一个接口,您不能这样实例化它。请记住,接口没有实现,因此显然根本没有机会实例化它们。您必须实例化实现接口的其他东西 这本书

E2352无法创建抽象类“INetSharingManager”的实例

这是我使用的代码:

INetSharingManager* NSManager = new INetSharingManager();
我的问题是

    如何正确使用C++中的InSeaSunMeMeor?
  • 以及如何在Delphi中使用INetSharingManager(如果可能的话)

提前感谢。

这是一个接口,您不能这样实例化它。请记住,接口没有实现,因此显然根本没有机会实例化它们。您必须实例化实现接口的其他东西

这本书展示了如何创造一个这样的人。以下是关键摘录:

CoInitialize (NULL);

// init security to enum RAS connections
CoInitializeSecurity (NULL, -1, NULL, NULL, 
                      RPC_C_AUTHN_LEVEL_PKT, 
                      RPC_C_IMP_LEVEL_IMPERSONATE,
                      NULL, EOAC_NONE, NULL);

INetSharingManager * pNSM = NULL;    
HRESULT hr = ::CoCreateInstance (__uuidof(NetSharingManager),
                                 NULL,
                                 CLSCTX_ALL,
                                 __uuidof(INetSharingManager),
                                 (void**)&pNSM);
此代码来自此库的Microsoft官方文档。您应该彻底阅读该文档


您可以从Delphi询问如何使用此接口。嗯,你和C++中做的完全一样。调用
CoCreateInstance
以获取接口引用。既然你可以从C++中看出如何做到这一点,那么把它翻译成Delphi。

是非常简单的。
HRESULT hr = E_FAIL; 
CoInitialize(nullptr);
INetSharingManager* pNetSharingManager = nullptr;
hr = CoCreateInstance(CLSID_NetSharingManager, 
nullptr,
CLSCTX_ALL, 
IID_INetSharingManager,
reinterpret_cast<LPVOID*>(&pNetSharingManager));
HRESULT hr=E_失败;
共同初始化(nullptr);
INetSharingManager*pNetSharingManager=nullptr;
hr=CoCreateInstance(CLSID_NetShareManager,
nullptr,
CLSCTX_ALL,
IID_iNet共享经理,
重新解释演员阵容(&pNetSharingManager));
测试和工作代码示例