阅读:1925回复:1
请教:如何编写自己的dll组件
<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> |
|
1楼#
发布于:2009-04-15 15:05
<P>最后灵光一闪,发现了问题的症结所在:</P>
<P>在定义的类前面没有加限定符“public”,加上以后一切OK。</P> <P>希望我的问题对其他人也有帮助,也希望那些网上发帖求助的朋友,在解决了问题后把自己的解决方法也和大家共享一下。</P><img src="images/post/smile/dvbbs/em07.gif" /> |
|