如题,我把函数封装在动态库里,在自己程序代码段里要调用里面的函数就要加外部声明extern,比如函数:
extern add(int a,int b) 像这样大量的外部声明会导致调用该动态库的程序运行速度变慢吗?有谁试过的,请教下。

解决方案 »

  1.   

    使用这个 __declspec(dllexport) 就少一层包装。
    放在 DLL 一样。
      

  2.   

    只声明不引用等于没用
    大量引用dll的函数会使启动变慢,之后没影响为了防止这种事,使用延迟装载或者绑定导入
      

  3.   

    声明无所谓,如果实际调用的话,如果是隐式的加载DLL的话,那么程序启动变慢是一定的,动态加载的话应该不会有太大影响。
      

  4.   

    在连接器参数中指定
    具体看msdn
      

  5.   

    比如我按下按钮,这个按钮实现拨号连接,需要调用拨号动态库里的函数,例DailPhone(),这时调用应该会有一定的延时吧
      

  6.   

    这个除非你的DllMain花很多时间,这个延时用户察觉不到
      

  7.   

    而且后面再调用就和普通的iat没什么区别
      

  8.   

    如果dll不会独立更新,可以使用绑定导入
      

  9.   

    我再调试的时候,发现MFC的工程,有很多相关dll是需要的时候才加载。
      

  10.   

    调用DLL中的函数,会先跳转到DLL入口地址表,然后再根据里面的地址调用实际的函数代码地址,多一个中间过程。一般来说,对效率的影响可以忽略不计。
      

  11.   

    导出表是可以导出名字的,否则GetProcAddress怎么能够接受字符串?绑定的时候可以按名字查,但是会附带一个索引的hint,如果正确就不需要比较名字