为了账号安全,请及时绑定邮箱和手机立即绑定

我想程序都是一样的,这个问题从哪来的?

我想程序都是一样的,这个问题从哪来的?

C++
千巷猫影 2023-01-07 19:15:27
1 我用cmake把void Myadd(){};这个函数定义封装为dll或者lib 然后加到VS库里运行2 直接在vs里定义void Myadd(){};然后直接运行我知道,即使直接定义运行也是会生成lib或者dll的吧?但是这俩速度有差别吗? 差别大不大?我自己做的实验,调用人家的dll的速度就是比我自己复制人家的代码的速度要快。
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

一般说来,如果同一段代码,一个写成DLL,一个作为函数直接定义,则DLL调用肯定要慢一些。原因如下:

一个程序如果要使用DLL中的函数,则必须经过,如下步骤:
1、将DLL文件装入内存,win32的方法是 :LoadLibrary(...);
2、取得指定的函数的入口地址,方法好像是: GetProcessAddr(.....)
3、通过函数指针,调用函数。

而直接在程序中定义函数,则没有前两步,函数的入口地址在程序装入时就确定了。

查看完整回答
反对 回复 2023-01-10
?
青春有我

TA贡献1784条经验 获得超8个赞

本地的代码不会比人家的慢,这是可以肯定的,可能别人的是Release版,你的是Debug版本,Release版本是经过优化的。性能会提升比较多。

查看完整回答
反对 回复 2023-01-10
  • 2 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信