郁闷了三天了,问了不知道多少人了.希望在这里得到解决
C#调用组件怎么用呀
VB.NE下面是这样的:
dim a=server.creatobject("");
而C#下面:
object a=server.creatobject("")却不行.
我估计是变量类型的原因.请问有人知道吗 前提是我没有建工程,就是一个ASPX页面,所以无法引用.本想用DLLIMPROT来实现的,可没有成功,
但既然VB.NET下面能解决.为什么C#就不行呀.

解决方案 »

  1.   

    new a=server.creatobject("")
    可以这样用吗,好象会出错,能不能写的全的啊,帮帮忙啊.
      

  2.   

    直接把COM添加为引用
    然后VS.NET会自动帮你生成包装类
    然后就可以像使用本地类型一样使用之creatobject这样的语法,直接用new xxxClass()替代
      

  3.   

    问题是我没有工程呀,怎么引用呀.如果是一个工程里的话,很到是很简单,直接引用 NEW一下就好用了.
    但问题是我现在只有一个ASPX页面
      

  4.   

    直接把COM添加为引用,然后VS.NET会自动帮你生成包装类
    生成.dll文件,拷贝到bin目录在.aspx文件头部加上
    <%@ Assembly Name="assemblyname" %>如果你没有权限写bin目录
    也可以考虑使用Assembly类动态加载程序集
      

  5.   

    Object MyObject;
    MyObject = Server.CreateObject("Acme.Component.3");
       有问题吗?
      

  6.   

    Acme.Component.3");.3是指什么意思呀
      

  7.   

    // 问题是我没有工程呀,怎么引用呀
    用Type Library Importer (Tlbimp.exe)
    tlbimp comLib.dll /out:myLib.dll
      

  8.   

    对, Sunmast(速马|AIR SUPPLY!)讲得对,用tlbimp.exe生成COM包装类(包含元数据)
      

  9.   

    <%@ Page aspcompat=true  language="CS" %> 
    <script language="CS" runat=server>  void Page_Load( object sender,EventArgs e ) 
    {
    Object MyObject;
    MyObject = Server.CreateObject("adodb.connection");
    Response.Write(MyObject.ToString());
    }
    </script>
      

  10.   

    参照楼上的方法用工程添加引用
    或调用Tlbimp.exe
    例如:
    C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin>tlbimp "C:\Program Files\Common Files\System\ADO\msado15.dll"
    产生一个ADODB.dll文件拷贝到web应用程序的Bin目录例如C:\Inetpub\wwwroot\bin
    <%@ Page   language="CS" %> <%@ Assembly Name="ADODB" %><script language="CS" runat=server>
      void Page_Load( object sender,EventArgs e ) 
    {
    ADODB.Connection MyObject = new ADODB.Connection();
    Response.Write(MyObject.ToString());
    }</script>
      

  11.   

    参照楼上的方法用工程添加引用
    或调用Tlbimp.exe
    例如:
    C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin>tlbimp "C:\Program Files\Common Files\System\ADO\msado15.dll"
    产生一个ADODB.dll文件拷贝到web应用程序的Bin目录例如C:\Inetpub\wwwroot\bin
    <%@ Page   language="CS" %> <%@ Assembly Name="ADODB" %><script language="CS" runat=server>
      void Page_Load( object sender,EventArgs e ) 
    {
    ADODB.Connection MyObject = new ADODB.Connection();
    Response.Write(MyObject.ToString());
    }</script>
      

  12.   

    直接把COM添加为引用
    然后VS.NET会自动帮你生成包装类
    然后就可以像使用本地类型一样使用之creatobject这样的语法,直接用new xxxClass()替代^_^
      

  13.   

    我的意见是,既然可以用VB.net作,你就用VB.net,何必非要趟这个混水……
      

  14.   

    在c#中组件是new出来的
    规则是不一样的
      

  15.   

    先注册组件,再直接将组件加入项目(用鼠标点点就可以了)
    再using yourcomlib
    然后就可以像用一个普通类一样用该组件了。