
[英]Compiling VB6 app w/ .NET interop, only runs if compiled on my machine
[英]Unable to create .NET Framework 1.1 Component from a VB6 app on an NT4 machine
尝试在NT4机器上运行.NET组件时遇到很多问题。 将安装Framework 1.1,并在同一框架下编译该组件。
该组件是由VB6应用程序调用的Web服务的代理。 不幸的是,VB6应用程序无法创建该组件的实例,并报告以下错误消息“ ActiveX组件无法创建对象”。
我编写了一个简单的.NET控制台测试应用程序,该应用程序创建了代理实例并调用GetStockQty。 在这种情况下,一切正常,调用成功,Web服务返回有效数量。
签名的代理组件具有以下COM属性:
[ComVisible(true)]
[Guid("D1576FA8-F3B1-4fa2-8018-677F6E483564")]
public interface IDataFeedProxy
{
[DispId(1)]
bool GetStockQty(string sku, out int quantity);
}
[ComVisible(true)]
[Guid("161A22E8-17C4-43f4-96A0-05FC439C7609"),
ClassInterface(ClassInterfaceType.None),
ComSourceInterfaces(typeof(IEvents))]
public class DataFeedProxy : IDataFeedProxy
它已使用以下方法在NT4机器上注册:
重排/ codebase DataFeedWebService.dll / TLB
这在XP机器上很好用,我在NT4上只有这些问题。 它显然与COM有关,但Im对可能的内容不知所措。
这是在VB6代码中完成的过程:
Dim oProxy As DataFeedWebService.DataFeedProxy
Set oProxy = New DataFeedWebService.DataFeedProxy
bRet = oProxy.GetStockQty(sPluCode, lQuantity)
Set oProxy = Nothing
Ive还尝试从VB6项目中删除引用,并以相同的结果在后期绑定它。
Dim oProxy As Object
Set oProxy = CreateObject("DataFeedWebService.DataFeedProxy")
您确定.net组件将在Windows nt4.0上运行。 我确实记得有可能,但是有很多操作不受支持。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.