问题标签 [comvisible]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - 将 COM 可见事件添加到 VB.NET 类的最快方法是什么?
COM
将可见事件添加到VB.NET
类的最快方法是什么?
Visual Studio 工具箱中是否有一些东西,或者有没有macro
可以做到这一点?
我正在使用VS2005
.
编辑:在这篇文章http://msdn.microsoft.com/en-us/library/dd8bf0x3(v=vs.80).aspx中,GuidAttribute
指定了 a 。这是程序员在设计时生成的,还是需要它来匹配其他地方的 GUID?
c# - SoapException 未在 ComVisible 类中捕获
我正在.NET 中开发一个 ComVisible 库,然后在旧的 VB6 类中调用它。我在课堂上主要做的是调用 Web 服务、解析响应并返回包含必要数据的对象。Web 服务被设计为返回一个SoapException
if 调用错误的参数。这是我的代码的一部分:
一旦我尝试使用正确的参数从我的 VB6 代码中调用此方法,我就会得到正确的答复。但是,如果我用错误的参数调用它,我会在我的 VB6 程序中收到-245757
( Object reference was not set to an instance of an object
) 运行时错误,而且它似乎没有被catch
我的 C# 代码中的子句捕获(虽然我希望该方法返回一个ReplyObject
带有填充字段的空字段) Error
.
我创建了一个测试 C# 项目并复制了相同的方法(即我从 .NET 平台内调用相同的 Web 服务),我可以确认在这种情况下SoapException
它被正确捕获。
这种行为是故意的吗?有没有办法SoapException
在 ComVisible 类中捕获 (因为我真的想将错误消息包含到我的回复对象中)?
UPD:我的 VB6 代码如下:
c# - [ComVisible] 默认和公共类 COM 暴露是怎么回事?
MSDN 有这篇关于[ComVisible]
属性的文章。我不太明白当一个集合时会发生什么[ComVisible(true)]
。
MSDN 说
默认值为 true,表示托管类型对 COM 可见。使公共托管程序集和类型可见,不需要此属性;默认情况下,它们对 COM 可见。只能使公共类型可见。
所以他们说公共类型默认对 COM 可见。但他们也说只有公共类型可以通过设置可见[ComVisible(true)]
。这没有意义:如果公共类型默认可见,那么设置如何[ComVisible(true)]
使公共类型可见?如果它们已经可见,它们将如何变得更加可见?
也许我的理解不正确。如果有人能对上述陈述有所了解,我将不胜感激。
.net - 如何判断 DLL 是否为 ComVisible?
我有一个 DLL,它的 ComVisible 属性可能设置为 true,也可能不设置。我不确定它是如何构建的,或者具有什么属性?我所知道的是它是一个.Net DLL。简而言之,我如何判断它是否是 Com Visible?
抱歉,如果这是重复的。我对这个返回结果的所有搜索都显示了如何使DLL ComVisible。我知道该怎么做。
visual-studio-2010 - COMVisible class in VS 2010 assembly still not visible through com
I created a VS 2010 class library. Marked the assembly for Com Visibility. Signed the assembly with a strong key. Created my class, have my entry point method available.
The library works fine from a test project in C#.
I regasm the class library to gac, via: c:\windows\microsoft.net\framework\v4.0.30319\regasm testdll.dll /tlb: testdll.tlb /codebase
Include the tlb file as a reference in my VB6 project. I find it through resources 'browse' so its there.
When i try to instantiate the class... its empty. the public method that should be available via the public class doesn't show.
In addition i tried calling the 'testdll.testclass' via CreateObject, i get the error "ActiveX component can't create object"
Now i have other projects i've done COM visibility for and i've tried comparing the difference, but i don't see any. I can't understand why it isn't working.
Any clues??? tx very much.
c# - 使用 CoCreateInstance 从 C++ 调用 C# dll
我的ProjectA是一个C#
类库,只有一个类:
我已经检查了Register for com interop
使用VS2010
哪些为我生成的dll
&tlb
文件,好的,直到现在。
我的ProjectBWin32 Dll
具有单个文件的应用程序cpp
:
…………………………………………………………………………
…………
我能够编译这个 Dll,直到现在一切看起来都很好。
当我使用我的 Win32 Dll 并尝试在这一行调用 Add 函数时出现问题:
永远不会通过,可能是什么问题,没有正确注册吗?
请协助。
.net - ClickOnce 应用程序部署和 .NET COM 可见 dll 注册
我有一个 clickonce 应用程序。我需要为该应用程序注册 COM 可见 dll。我在该应用程序的代码中使用了注册,检查它是否已经注册并通过 RegistrationServices 类方法 RegisterAssembly() 进行注册。如果它是由管理员启动的,它工作正常。但我不能要求管理员权限来部署 clickonce 应用程序。我尝试注册的第二种方式是我的 clickonce 的先决条件,这将需要管理员并注册我的 dll。我为我的先决条件应用程序创建了产品清单,但在 clickonce 部署期间出现错误
“安装程序检测到文件'...'自最初发布以来已更改或可能已损坏。”
我发现这是.NET 4.5的问题,我应该签署我的先决条件。我再次签名并由 Bootstrapper 生成清单。之后我在部署过程中遇到以下错误:
“文件不受信任错误:安装程序检测到无法验证文件的发布者”
在成功部署 clickonce 之前,我必须先在目标机器上安装证书。但是在所有目标机器上安装 clickonce 之前是不可能安装证书的。有没有人有任何想法如何解决这个问题?提前致谢。
c# - 将字符串中的二进制数据作为 COM 事件参数传递
我正在尝试将二进制数据从 .NET 获取到 FoxPro(一种兼容 COM 的语言)。我有一个 ComVisible 的 .NET 对象和一个带有字符串参数的事件的事件接口。
在下面的示例中,我有一个虚拟实现,它返回一个包含从 0 到 255 的每个连续字符的字符串。在 .NET 端,该字符串适当地存储了每个未被干扰的字符,但是在客户端处理事件时,128 到 154 之间的字符转换为问号。超过 154 个字符再次保持不变。
知道是什么导致了这个问题吗?不幸的是,FoxPro 没有办法在本地表示二进制数据,并且需要在字符串中对其进行curry。
c# - 为什么 IDisposable 具有 [ComVisible(true)] 属性?
我继承了我工作的大型遗留 ASP.NET 应用程序,我们公司希望我们使用 FxCop 并修复所有主要的违规行为。目前似乎很流行的一条规则如下:
CA1405: COM 可见类型基类型应该是 COM 可见的
看来我们应用程序中的每个 ASP.NET 页面/控件都违反了此规则。起初我不确定为什么,但最终我意识到这是由于以下继承链:
我也意识到IDisposable
定义为:
总结一下:所有 ASP.NET 页面/控件都继承自IDisposable
,并IDisposable
具有该[ComVisible(true)]
属性,这意味着所有页面/控件都将不符合此规则。
这伤害了我们,因为我们的应用程序有数千个页面和控件,因此有数千个违规行为。禁用规则不是一种选择,因为我们有一套“公司标准”的 FxCop 规则。似乎 FxCop 想让我们检查一下并将这个属性放在我们应用程序的每个页面上,我真的不感兴趣。
我的问题是,为什么首先IDisposable
要有[ComVisible(true)]
属性?
dll - RegAsm - /codebase 选项何时适用?
我有一个用 C# 编写的 COM 可见 DLL,我想在 VB6 应用程序中使用它。我有两个主要的 DLL 用例,我想知道该/codebase
选项何时适用以及何时在 GAC 中注册更好。
用例:
Project > References
DLL 将被加载到另一台开发人员 PC 上,并且需要在菜单下可供 VB6 IDE 访问当 VB6 应用程序发布时,DLL 将被加载到生产机器上
任何有关适当使用的信息/codebase
都会有所帮助。
谢谢。