2011-02-14 50 views
0

我有一个问题/一些基本的东西的问题。 我已经安装了interoptoolkit v2.1,并且我正尝试在vs 2008中使用C#创建此表单,因此可以从vb6应用程序访问此表单。使用[interopformproperty]防止wrapper.cs文件生成

我想在此表单上添加一个公共属性,所以我想我应该在属性上添加这个 [interopformproperty]。

但是,当我这样做,并尝试使用工具菜单下的选项生成包装,它不会生成包装。

我明显搜索谷歌一段时间,但我找不到特别有用的东西。所以如果你对此有所了解,请给我们一些帮助。

非常感谢。干杯。

+0

是由物业标记有ComVisible特性暴露的类型? – 2011-02-14 12:58:31

+0

我不确定,但我不这么认为。使用该属性只允许vb6加载c#表单。 – rlee923 2011-02-14 13:05:59

+0

噢,也许这是它有什么区别? – rlee923 2011-02-14 13:08:47

回答

0

我总是最后回答我的问题:d 我只是做这个万一有人就在这。

到这个链接并下载第二个选项。

C_Interop_Form.aspx“> http://www.codeproject.com/KB/dotnet/VB6_- ç _Interop_Form.aspx

假设你正在使用vs2008。获取dll文件和添加文件。

,并复制该文件到我的文档 - > Visual Studio 2008中>加载项

打开记事本的插件文件,更改版本号8.0 - > *

现在保存它。并重新加载vs2008。它应该用C#代替vb生成包装文件。

P.S,阅读后的评论总是帮助:d

0

如果com可见类型实现了interace,则所有公共方法的属性都是com可见的,前提是类型在它们的签名中使用com是可见的。如果com可见类型实现多个接口,则第一个(在类定义中)用作com接口。此行为可以使用ComDefaultInterfaceAttibute进行更改。

如果未实现接口,则所有公共属性(公开com公开可见类型)都会自动显示。 regasm自动生成一个com接口,包含所有公共方法/特性。

“生成一个包装”,你说...我不明白这一点。 编译组件与COM后可见类型注册使用regasm(如果在项目属性中选择“注册为COM互操作是不活跃)