1:我在VB中引用我写的DLL,为什么DLL的路径是绝对路径呢?我编写的程序的文件夹一变程序就无法运行了,找不到DLL,怎么样使我引用的DLL是以相对路径来引用呢?放在程序目录,使用App.Path (如果不是用LoadLibaray则不需要)
2:窗体的卸载(关闭)的方法是什么?找来找去我只找到一个隐藏窗体的方法Unload Me (注意启动窗口用此程序会退出。)3:我向数据库中添加了一个数据后,使用MSHFlexGrid1.Refresh方法刷新MSHFlexGrid控件,为什么怎么刷新都无法显示出来新加的数据,非要我关闭加载MSHFlexGrid控件的窗口后重新打开窗口,才能显示?首先要重新查询(ReQuery)

解决方案 »

  1.   

    引用的DLL路径当然是绝对的。因为要在系统注册。最好放在系统目录下。
    窗体关闭是unload form1(form1是要关闭的窗体),最好再set form1=nothing,卸载的更彻底。
    第三个我再看看。
      

  2.   

    1.也可以放在system32目录里面啊
    2.unload me 或 unload form1然后在form1_unload里面写需要关闭的一些代码
    3.还需要adodc1.refresh
      

  3.   

    同意blacklevin(黑闪电) 
    就是如果用了Loadlibaray则最好是相对路径!
      

  4.   

    强。....。有Bardo(巴顿)在。......。我不多说了
      

  5.   

    竟然有那么多人比我的三角多,我得多努力了
    先顶一下
    等我把所有的的问题搞定后就散分
    另外,TO:blacklevin(黑闪电) 
    adodc1.refresh是放在MSHFlexGrid.refresh之前还是之后?
      

  6.   

    系统会自动查找程序所在目录,系统目录和环境变量指定的路径,所以一般将dll和exe放在一个目录里面。
      

  7.   

    是什么DLL,是VB写的那么是AticeX DLL,做为COM组件必然要注册,
    无论你把这样的DLL放在哪儿,最简单是调用:
        Regsvr32 xxx.dll /s  来注册。
    也可以用ITypeInfo自己写个注册程序。
        要是VC做的静态的DLL,建议就放在EXE程序所在目录下,这就是绿色软
    件。 是自己的东西不要放到系统目录去去。
        用LoadLibaray可以,不过需要一些小技巧,不是一两句说得清,你可以
    等待我的文章《Hook API》,我会讲讲如何来动态加载DLL,并改变其中的API
    函数地址。
       
      -微软非官方技术研究自由人,VB非官方技术支持本贴子仅供参考。本人不提供数据库、VB文档已有说明的和任何未经思考的技术
    问题之支持。若你有百思不得其解的问题,请给本人发短消息。
    本人近期常于以下贴子出没:
        http://www.csdn.net/expert/topic/533/533904.xml
        http://www.csdn.net/expert/topic/528/528657.xml
        http://www.csdn.net/expert/topic/516/516072.xml
      

  8.   

    其它几个问题,大家的回答都是对的。
       理论上,Unload Me后应该可以把窗体从内存中清除。但VB总在为你维护
    一个和窗体名同名的变量,没有好的技术能把这个变量也清除。
        做为一个好的习惯,可以自己声明一个 xxx as Form1, 再用Load xxx加
    载,最后用Unload xxxx,清除窗体,最后再Set xxx = NoThing将接口引用指
    针变量清除。
      

  9.   

    文章可见:http://www.csdn.net/develop/list_article.asp?author=AdamBear
      

  10.   

    关于DLL,有API DLL与ActiveX DLL
    前者要用
    Declare 声明,但并不需要指明路径,因为通常会先到程序路径然后系统路径中去找。
    ActiveX Dll 如果要动态引用,则要用LoadLibaray 这个API 函数。
    只有在此时才需要将其放到程序路径,然后用App.path去找。