2013-10-08 94 views
0

我試圖在C#2008中使用MSWinSock,但它不工作。Winsock實例異常

我不斷獲取此異常:

System.Runtime.InteropServices.COMException (0x80040112): Het maken van een exemplaar van het COM-onderdeel met CLSID {248DD896-BB45-11CF-9ABC-0080C7E7B78D} uit de IClassFactory is mislukt door de volgende fout: 80040112. 

我用這個作爲我的代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

using MSWinsockLib; 

using Info.Kernel.Logging; 

namespace InfoEmu.Kernel.OldSock 
{ 
    public class WinSockListener 
    { 
     private WinsockClass Winsock; 

     private WinsockClass[] Clients = new WinsockClass[1000]; 

     public WinSockListener(int port) 
     { 
      try 
      { 
       Winsock = new WinsockClass(); 
       Winsock.LocalPort = port; 
       Winsock.Listen(); 
      } 
      catch (Exception e) 
      { 
       Cout.WriteLine("[ERROR!] {0} {1}", Environment.NewLine, e); 
      } 
     } 
    } 
} 

我看了很長一段時間沒有很好的解決方案。請幫忙。

+0

你使用Interop.DAO.dll嗎? – rum

+1

爲什麼你使用COM互操作而不是本地.Net套接字支持? http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspx – shf301

回答

0

0x80040112CLASS_E_NOTLICENSED「類沒有許可使用」。錯誤表明COM類需要設計時許可證。詳情請見:Licensing ActiveX Controls - Design-Time Licensing。那就是你需要這個控件的許可證,或者需要一個替代(也許更好)的解決方案來實現套接字。