chenjiayibo
路人甲
路人甲
  • 注册日期2008-03-19
  • 发帖数12
  • QQ
  • 铜币149枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1808回复:1

请教:如何编写自己的dll组件

楼主#
更多 发布于:2009-04-15 11:36
<P>使用Arcgis Engine+C#,自己编了一个dll组件,用于将试图放大5倍。</P>
<P>编程环境VS2005.</P>
<P>自己建的这个类实现ICommand接口。</P>
<P>代码编写完成后,由于开发的dll文件要在arcmap下使用,所以该.net类必须暴露为com类。因此我将"配置属性”“生成”中的“为COM interop注册”复选框选中。</P>

<P>编译通过,生成了dll,但是出现警告:“警告 1 “C:\MyZoomTools\MyZoomTools\bin\Debug\MyZoomTools.dll”不包含可为 COM Interop 注册的任何类型。”</P>
<P>在arcmap里面不能使用该组件。</P>

<P>根据报错,查了网上的一些资料,比如:</P>
<P>“在 AssemblyInfo.cs 中设置了ComVisible(false) </P>
<P>    将其改成 ComVisible(true) 即可! </P>
<P>    如果还是不行, 就去掉属性中的 COM Interop 注销 选项!! </P>
<P>    再用 命令行进行编译(csc.exe) , 再用 regasm.exe 注册!”</P>
<P>——用这个方法,出现错误,用csc.exe根本编译不成功,无法生成dll。</P>
<P>“使用‘项目’-‘add Component Category’进行注册”</P>
<P>——‘add Component Category’选项是灰色的,无法选择。</P>


<P>因此,在这里向大家请教,如何解决我这个问题。<BR></P>
喜欢0 评分0
chenjiayibo
路人甲
路人甲
  • 注册日期2008-03-19
  • 发帖数12
  • QQ
  • 铜币149枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2009-04-15 15:05
<P>最后灵光一闪,发现了问题的症结所在:</P>
<P>在定义的类前面没有加限定符“public”,加上以后一切OK。</P>
<P>希望我的问题对其他人也有帮助,也希望那些网上发帖求助的朋友,在解决了问题后把自己的解决方法也和大家共享一下。</P><img src="images/post/smile/dvbbs/em07.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部