CPP函数调用的方法
相比于C語(yǔ)言中函數(shù)可以直接調(diào)用,CPP的函數(shù)由于命名存在隱式添加,因此需要通過(guò)一套流程才能調(diào)用:
1. 編碼中,使用extern "C" 定義一個(gè)C函數(shù),返回獲取對(duì)象的指針;執(zhí)行該函數(shù)時(shí),獲得一個(gè)地址,例如0x496a9784,為該對(duì)象指針。
? ? example:?extern "C" CxxxxFpgaDrv *GetxxxxICDrv(void)
2. 找到函數(shù)所在的cpp文件,它會(huì)編譯成同名的.o文件;將nm xxx.o > xxx.s, 獲取文件各函數(shù)的符號(hào)表。
? ? example:
_ZN14COxxxxFpgaDrv10InitializeEv
_ZN14CxxxxFpgaDrv21ResetIngGatherScatterEv
_ZN14CxxxxFpgaDrv14ResetIngBufMgrEv
_ZN14CxxxxFpgaDrv14ResetPPIngPathEv
_ZN14CxxxxFpgaDrv20ResetEgGatherScatterEv
_ZN14CxxxxFpgaDrv13ResetPPEgPathEv
_ZN14CxxxxFpgaDrv13ResetEgBufMgrEv
?
3. 使用?_ZN14COxxxxFpgaDrv10InitializeEv(0x496a9784)的方式來(lái)調(diào)用,即執(zhí)行了該對(duì)象下的Initialize()函數(shù)。
轉(zhuǎn)載于:https://www.cnblogs.com/atoman/p/6371372.html
總結(jié)
以上是生活随笔為你收集整理的CPP函数调用的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: lock和synchronized的同步
- 下一篇: Computer Vision Revi