CPP函数调用的方法

相比于C语言中函数可以直接调用,CPP的函数由于命名存在隐式添加,因此需要通过一套流程才能调用:

1. 编码中,使用extern "C" 定义一个C函数,返回获取对象的指针;执行该函数时,获得一个地址,例如0x496a9784,为该对象指针。

example: extern "C" CxxxxFpgaDrv *GetxxxxICDrv(void)

2. 找到函数所在的cpp文件,它会编译成同名的.o文件;将nm xxx.o > xxx.s, 获取文件各函数的符号表。

example:

_ZN14COxxxxFpgaDrv10InitializeEv

_ZN14CxxxxFpgaDrv21ResetIngGatherScatterEv
_ZN14CxxxxFpgaDrv14ResetIngBufMgrEv
_ZN14CxxxxFpgaDrv14ResetPPIngPathEv

_ZN14CxxxxFpgaDrv20ResetEgGatherScatterEv
_ZN14CxxxxFpgaDrv13ResetPPEgPathEv
_ZN14CxxxxFpgaDrv13ResetEgBufMgrEv

3. 使用 _ZN14COxxxxFpgaDrv10InitializeEv(0x496a9784)的方式来调用,即执行了该对象下的Initialize()函数。

时间: 2024-10-10 14:35:18

CPP函数调用的方法的相关文章

JS函数调用的方法

JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式 1.方法调用模式:先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来执行方法,this即指当前的myobject 对象.var blogInfo={ blogId:123, blogName:"werwr", showBlog:function(){alert(this.blogId);}}; blogInfo.showBlog(); 2.函数调用模式定义

主函数调用普通方法

主函数调用普通方法出错,而普通方法可以直接调用 因为主函数为静态函数,只能直接调用静态方法,对于非静态方法只能创建对象,用对象进行调用 原文地址:https://www.cnblogs.com/jiao-/p/8661698.html

JS中函数调用的方法

JavaScript 函数有 4 种调用方式.每种方式的不同方式在于 this 的初始值. 1.作为一个函数调用 function myFunction(a, b) { return a* b; } myFunction(10, 2); // myFunction(10, 2) 返回 20 或 function myFunction() { return this; } myFunction(); // 返回 window对象 this为window对象. 2.作为方法调用 var myObje

js函数调用的方法:

js的函数调用会免费奉送两个而外的参数就是 this 和 arguments .arguments是参数组,他并不是一个真实的数组,但是可以使用.length方法获得长度. 书上有说4中调用方式: 方法调用模式 函数调用模式 构造器调用模式 apply调用模式 下面我们来看看一些实例更好理解. 1:方法调用模式. 请注意this此时指向myobject. /*方法调用模式*/    var myobject={            value:0,            inc:functio

记一个VS连接过程中找不到cpp的解决方法

在新增几个qt页面时,发现原来没动的几个cpp 连接报错了,错误均是qt的相关文件找不到 应该是moc文件没有生产或者没有被包含进工程.我想着既然我没动,应该不会是moc的原因,就在其他方向解决了很久也没解决 然后在vs文件管理器搜相关moc文件,缺失没有,这就很奇怪了. 我的方法是,用记事本格式打开工程的.vcxproj文件,跟之前的一对比.发现缺失有几个cpp的命令行被改掉了.这个如果用vs的可视化界面,很难直观的看到哪个变动了 于是把这几个cpp文件删除再添加,就可以了 原文地址:http

Linux内核模块间函数调用正确方法

转载注明出处 : http://blog.csdn.net/xhz1234/article/details/44278137 Copyright 徐洪志(MacroSAN). All rights reserved. 模块之间发生调用关系是常有的事情,下面以两个模块A.B,B使用A模块提供的函数为例,讲解正确使用的方法. 模块A中使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL将要提供给B模块的函数导出: 模块B中用extern 声明需要用到的A模块提供的函数. 代码如下: 模

函数调用的方法

调用函数的五种方法: 1.函数声明 function run(){ alert("函数声明") //这里是你函数的内容 } //调用 run() 2.函数表达式 var run = function(){ alert("这是一种声明函数的写法,左边是一个变量,右边是一个函数的表达式,意思就是把一个匿名函数的表达式赋值给了一个变量run,只是声明了一个变量指向了一个函数对象")//这里是你函数的内容 } run() 3.方法调用式 作为对象方法,函数写法,这里创建了两

用函数调用的方法实现数组的 初始化、逆置、清零

4. #include<stdio.h> void init(int arr[], int size){ int i = 0; for (i = 0; i < size; i++)  scanf("%d", &arr[i]); }void empty(int arr[], int size){ int i = 0; for (i = 0; i < size; i++) {  arr[i] = 0; } }void reverse(int arr[], i

JavaScript--3种函数调用的方法

1.函数的简单调用: <script > function fn(p){ alert(p); } </script> <body><script> fn("简单调用JavaScript函数");</script> </body> 2.事件响应中调用函数 <script > function fn(){ alert("success"); } </script> <b