我用这种方式调用dll接口函数:
function IC_WhatIsType(icdev: longint): smallint; stdcall;
far; external 'lkic32.dll' name 'IC_WhatIsType';我想搞清楚,当调用此函数时,'lkic32.dll' 是否被加载到内存?如果是,如何把已加载的dll从内存中完全清除掉?

解决方案 »

  1.   

    还有,因为DLL可能不只只是你一个人调用了的
    如果还有其它的程序在使用这个DLL的话,那你是没有办法完全从操作系统中释放掉的
    因为这是OS的保留功能
    如果就是你自己调用的话,那么可以用楼上的办法了
      

  2.   

    1 改用动态调用
    2 系统会维护一个dll的引用计数,当你程序退出时,如果没有其他程序应用,及当引用计数为0时,系统会自动释放
      

  3.   

    还有,因为DLL可能不只只是你一个人调用了的
    如果还有其它的程序在使用这个DLL的话,那你是没有办法完全从操作系统中释放掉的
    因为这是OS的保留功能
    如果就是你自己调用的话,那么可以用楼上的办法了
      

  4.   

    这是静态调用DLL,应该是系统管理DLL的加载与清除。
      

  5.   

    这个问题与
    http://expert.csdn.net/Expert/topic/1980/1980451.xml?temp=.6063349
    有关,感兴趣的可以看看因为我使用了dll,而导致了其他部分功能的冲突,我要在程序中随时调用dll,随时
    可以清除内存,来保证其他功能无误