亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我想程序都是一樣的,這個問題從哪來的?

我想程序都是一樣的,這個問題從哪來的?

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 關注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號