`
xitong
  • 浏览: 6401701 次
文章分类
社区版块
存档分类
最新评论

C函数和C++函数相互调用

 
阅读更多

test.c

int call_MyMath_sum (int,int);
 
int sum(inta , intb) {
 return call_MyMath_sum(a,b);
}


main.cpp

#include <iostream>
 using namespace std;
 
extern"C" {
 int sum(int, int);
 }
 
class MyMath {
 public:
     static int sum(int, int);
 };
 intMyMath::sum(inta, intb) {
     return(a + b);
 }
 
extern"C" int call_MyMath_sum (inta , intb) {
    return(MyMath::sum(a,b));
 }
 
int main(void) {
    cout<<sum(5,6);
    return0;
 }


Makefile

main.o:
   g++ -c -o main.o main.cpp
test.o:
   gcc -c -o test.o test.c
main: main.o test.o
   g++ -o main main.o test.o
all: clean main
clean:
   rm -f test.o main.o


原网址 :http://it.zuocheng.net/?p=32
分享到:
评论

相关推荐

    C++调用C函数实例详解

    C++调用C函数实例详解 前言:以前见到extern “C”这样的语句,只是简单地知道跟外部链接有关,但是没有深刻理解它的意思。 首先,为什么要使用extern “C”修饰符? C++调用其它语言的函数,由于编译器生成函数的...

    C++类间函数的相互调用的实例

    总结来说,这个实例展示了C++中如何通过对话框和逻辑类实现类间函数调用,以及如何在用户交互后执行特定的逻辑操作。这种设计模式在实际开发中非常常见,可以提高代码的可读性和可维护性。通过理解这个实例,开发者...

    C++自动生成函数调用关系图.rar

    在C++编程中,函数调用关系图是一种可视化工具,它可以帮助开发者理解代码中的函数如何相互调用,以及控制流程的走向。这个压缩包“C++自动生成函数调用关系图.rar”很可能是提供了一种方法或工具,用于自动创建这种...

    C调用REFPROP,c调用c++函数,C,C++

    标签中的"调用REFPROP C++"再次强调了C++调用REFPROP库的主题,"C调用REFPROP"则意味着同样提供了C语言的调用方式。这通常涉及到使用C语言的函数指针或者C++的extern "C"语法,以确保C++编译器不会对函数进行名字...

    c调用C++函数

    由于C++支持名称空间和类,而C语言没有这些概念,因此直接在C代码中调用C++函数会遇到兼容性问题。 为了使C代码能够调用C++函数,我们需要遵循以下步骤: 1. **extern "C" 声明**:C++允许使用`extern "C"`来告诉...

    C++中的类中函数调用

    本文将深入解析C++中类中函数调用的基本原理、语法结构及其实现方式,通过一个具体的代码示例来展示这一过程。 ### 类中函数调用的基础概念 在C++中,类是一种用户定义的数据类型,它不仅可以包含数据成员(即属性...

    C++ 通过字符串调用函数

    要将字符串转换为函数调用,你需要先创建一个函数指针类型的映射表,然后将函数名作为键,对应的函数指针作为值。这样,你可以通过查找字符串来获取对应的函数指针并执行它。 ```cpp #include #include #include ...

    ios demo,object-c调用函数和c++函数

    本文将深入探讨如何在Objective-C项目中调用C和C++函数,以此来增强应用的功能和性能。 首先,Objective-C是苹果公司为Mac OS X和iOS平台设计的一种面向对象的编程语言,它基于C语言并添加了类、协议和消息传递等...

    C语言调用C++类中的方法

    总之,C语言调用C++类的方法涉及到C++的extern "C"声明、函数指针的使用以及正确的编译和链接步骤。理解这些细节对于进行跨语言编程至关重要。通过实践和调试,你可以更熟练地掌握这一技巧,从而在实际项目中灵活...

    C++高效获取函数调用堆栈

    C++高效获取函数调用堆栈 在程序设计和开发过程中,出现问题是很正常的。这时候,快速找到问题所在,并确定程序的上下文环境就变得非常重要。函数调用堆栈的信息对于解决问题具有很大的帮助。传统的方法是使用 ...

    c语言与c++互相调用示例

    首先,我们来看C语言调用C++函数的情况。由于C++是C的超集,大部分C代码可以在C++环境中编译运行,因此C调用C++的函数相对直接。但是,C++引入了名字修饰(Name Mangling)机制,这使得C++的函数在链接时的名称可能...

    C#和c++dll函数相互调用

    - 注意设置`CallingConvention`为`Cdecl`,因为大多数C++函数使用C调用约定。 3. **C++调用C#方法** - 创建C#类库项目,并定义需要被C++调用的公共方法。例如: ```csharp public class MyCsClass { public ...

    C++函数调用过程深入分析

    函数调用的过程实际上也就是一个中断的过程,那么C++中到底是怎样实现一个函数的调用的呢?参数入栈、函数跳转、保护现场、回复现场等又是怎样实现的呢?本文将对函数调用的过程进行深入的分析和详细解释,并在VC ...

    C#调用C++动态库中自身定义的回调函数

    本主题将详细探讨如何在C#应用程序中调用C++动态链接库(DLL)中的函数,并且在这个过程中,C#能够注册和处理C++库中定义的回调函数。 首先,让我们理解回调函数的概念。回调函数是一种设计模式,允许将一个函数的...

    C#调用C++动态库,执行回调函数并传递结构体参数

    为了进行调用,我们需要在C#中定义与C++接口一致的委托类型和结构体类型,以匹配C++中的函数原型和数据结构。 C++动态库中,回调函数是一种特殊的函数,它的指针可以作为参数传递给其他函数,在适当的时候被调用。...

    Lua调用C++函数实现

    这主要通过 Lua 的 C API 实现,它提供了一套 C 函数供外部语言(如 C++)调用,同时也允许外部代码注册函数给 Lua 使用。在 C++ 中,我们可以创建一个 Lua 共享库,其中包含用于与 Lua 交互的函数。 1. **创建 Lua...

    包含构造函数和析构函数的C++程序

    ### 构造函数和析构函数在C++中的应用 #### 概述 构造函数与析构函数是C++编程语言中非常重要的概念,它们在类的实例化和销毁过程中扮演着关键角色。通过理解这些函数的工作原理及其作用,我们可以更好地控制对象...

    C调用REFPROP_refprop_C++调用refprop_调用REFPROP_C++_C调用REFPROP

    在C++代码中,首先需要调用`Initialize`函数,传递流体的名称字符串(如"Water")和温度、压力的单位(如"K"和"bara")。这一步是必要的,因为REFPROP需要知道计算的基准条件。 4. **计算流体性质**: 初始化后,...

    lua调用C++函数

    C++函数通常需要遵循特定的原型,比如`int lua_CFunction(lua_State *L)`,其中`lua_State *L`是Lua的状态指针,用于访问Lua的栈和执行环境。 3. **Lua的调用约定**:在C++中,你需要使用`luaL_register`或`lua_...

    C# 调用C++DLL(函数参数包含指针)

    要使用P/Invoke,我们需要在C#中定义一个对应的接口,这个接口声明了要调用的C++函数。 1. **定义DllImport特性**:在C#中,我们需要使用`[DllImport]`特性来导入DLL,并指定其路径。例如: ```csharp [DllImport...

Global site tag (gtag.js) - Google Analytics