郁闷了三天了,问了N多的人,查了N多的资料,希望在这里得到解决.C#调用C++组件的问题 分少了点,但只有三十分了 郁闷了三天了,问了不知道多少人了.希望在这里得到解决C#调用组件怎么用呀VB.NE下面是这样的:dim a=server.creatobject("");而C#下面:object a=server.creatobject("")却不行.我估计是变量类型的原因.请问有人知道吗 前提是我没有建工程,就是一个ASPX页面,所以无法引用.本想用DLLIMPROT来实现的,可没有成功,但既然VB.NET下面能解决.为什么C#就不行呀. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 new a=server.creatobject("")可以这样用吗,好象会出错,能不能写的全的啊,帮帮忙啊. 直接把COM添加为引用然后VS.NET会自动帮你生成包装类然后就可以像使用本地类型一样使用之creatobject这样的语法,直接用new xxxClass()替代 问题是我没有工程呀,怎么引用呀.如果是一个工程里的话,很到是很简单,直接引用 NEW一下就好用了.但问题是我现在只有一个ASPX页面 直接把COM添加为引用,然后VS.NET会自动帮你生成包装类生成.dll文件,拷贝到bin目录在.aspx文件头部加上<%@ Assembly Name="assemblyname" %>如果你没有权限写bin目录也可以考虑使用Assembly类动态加载程序集 Object MyObject;MyObject = Server.CreateObject("Acme.Component.3"); 有问题吗? Acme.Component.3");.3是指什么意思呀 // 问题是我没有工程呀,怎么引用呀用Type Library Importer (Tlbimp.exe)tlbimp comLib.dll /out:myLib.dll 对, Sunmast(速马|AIR SUPPLY!)讲得对,用tlbimp.exe生成COM包装类(包含元数据) <%@ 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> 参照楼上的方法用工程添加引用或调用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> 参照楼上的方法用工程添加引用或调用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> 直接把COM添加为引用然后VS.NET会自动帮你生成包装类然后就可以像使用本地类型一样使用之creatobject这样的语法,直接用new xxxClass()替代^_^ 我的意见是,既然可以用VB.net作,你就用VB.net,何必非要趟这个混水…… 在c#中组件是new出来的规则是不一样的 先注册组件,再直接将组件加入项目(用鼠标点点就可以了)再using yourcomlib然后就可以像用一个普通类一样用该组件了。 自定义PageDataGridView类的一点问题 C#泛型类型能否动态确定吗 推荐一款分析单元测试代码覆盖率的软件? 一面试题:.net中有哪些事务 WinForm中如果让DateGrid的标题行中的文字在垂直方向居中显示? Oracle存储过程中的输出参数,在C#中输出怎么是乱码? 关于通用对话框的使用--- 请问关于红外编程的问题 我想做一个软件,界面设计部分,我想采用QQ窗口那样,具体如何实现,给我个答案 疑惑之中...... 用C#写的COM组件能否被.NET使用? 请教高手
可以这样用吗,好象会出错,能不能写的全的啊,帮帮忙啊.
然后VS.NET会自动帮你生成包装类
然后就可以像使用本地类型一样使用之creatobject这样的语法,直接用new xxxClass()替代
但问题是我现在只有一个ASPX页面
生成.dll文件,拷贝到bin目录在.aspx文件头部加上
<%@ Assembly Name="assemblyname" %>如果你没有权限写bin目录
也可以考虑使用Assembly类动态加载程序集
MyObject = Server.CreateObject("Acme.Component.3");
有问题吗?
用Type Library Importer (Tlbimp.exe)
tlbimp comLib.dll /out:myLib.dll
<script language="CS" runat=server> void Page_Load( object sender,EventArgs e )
{
Object MyObject;
MyObject = Server.CreateObject("adodb.connection");
Response.Write(MyObject.ToString());
}
</script>
或调用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>
或调用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>
然后VS.NET会自动帮你生成包装类
然后就可以像使用本地类型一样使用之creatobject这样的语法,直接用new xxxClass()替代^_^
规则是不一样的
再using yourcomlib
然后就可以像用一个普通类一样用该组件了。