2013-10-18 43 views
2

我是一個新手,C++程序員,並且使用C++ Builder中XE3,我有一個很好的德爾福背景,我想使用INetSharingManager,但它給了我一個錯誤信息:如何正確使用INetSharingManager?

E2352 Cannot create instance of abstract class 'INetSharingManager'

這是我使用的代碼:

INetSharingManager* NSManager = new INetSharingManager(); 

我的問題是

  • 如何在C++中正確使用INetSharingManager?
  • 以及如何在Delphi中使用INetSharingManager,(如果有可能的話)

並提前致謝。

回答

1

這是一個接口,你不能像那樣實例化它。請記住,接口沒有實現,所以顯然沒有機會實例化它們。你必須實例化其他實現接口的東西。

C++ sample code here顯示瞭如何創建這些人之一。以下是關鍵摘錄:

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就足夠簡單了。

+0

非常感謝。 –