阅读:3165回复:10
dll调用问题
<P>
兄弟在调用Dll的时候发现一个莫名其妙的问题,如下: 1 在系统中注册 layer.dll 2 随便建立一个*.exe程序 ,引用ersicore.olb类库 与layer.dll 3 主窗体上写一个mapcontrol1 ,然后 画一个按钮 4 在菜单的响应事件中 写如下代码: Private Sub Command2_Click() Dim pcm As ICommand Set pcm = New ESRI_Layer.Layers pcm.OnCreate MapControl1 pcm.OnClick End Sub</P> <P> 但是 每次运行时候激活此事件后, 此dll的对话框总是一闪就不再出现了,为什么呢??</P> <P> 我调试了一下 ,在 pcm.OnCreate MapControl1设置断点,则发现运行过 pcm.OnClick时,窗体会出现,但是在往后一步运行过End Sub 窗体就会消失, 为什么会出现这样的情况,我该如何才能避免呢? </P> |
|
|
1楼#
发布于:2004-09-12 23:37
<P>没有问题啊,我用在arcgis带的例子就没有问题,并且我吧他注册到arcmap中也没有问题啊??</P>
|
|
|
2楼#
发布于:2004-09-13 15:12
<P>谢谢gis, 我的问题 找到了</P><P> 原来是因为 如果直接这样写icommand 仅仅是一个暂时变量, 这个好象要设置成 一个过程变量</P><P>,通告先!!~~</P><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" />
|
|
|
3楼#
发布于:2004-09-14 14:16
<P>楼上不对把,即使写,也应该这样写吧!!</P><P>private sub Command1_Click()</P><P>dim mytools as ICommand</P><P>set mytools=createobject("IndexQuery.clsQuery")</P><P>mytools.OnCreate Mapcontrol1.object</P><P>mytools.OnClick</P><P>end sub</P><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" />
|
|
|
4楼#
发布于:2004-09-15 15:48
<P>你参考exploring Arcobjects ,它里面讲的很清楚的!~~~~</P><P> </P><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em08.gif" />
|
|
|