优秀的编程知识分享平台

网站首页 > 技术文章 正文

C和C++如何相互调用接口(c++调用com接口)

nanyue 2024-08-16 00:43:01 技术文章 6 ℃

C调用C++接口:

1. 在C++代码中,将函数声明为extern "C",这样C编译器就不会对函数名进行修饰,从而可以正确地调用C函数。

2. 在C代码中,使用C语言的函数指针类型(如void (*)(int, int))来声明C++函数的地址,然后通过这个地址来调用C++函数。

示例代码:

// C++代码

extern "C" {

void my_function(int a, int b);

}

void call_cpp_function() {

my_function(3, 4);

}


// C代码

#include <stdio.h>


extern "C" {

void my_function(int a, int b) {

printf("Called from C++: %d + %d = %d

", a, b, a + b);

}

}


int main() {

call_cpp_function();

return 0;

}

C++调用C接口:

1. 在C++代码中,使用extern关键字声明C函数,并指定函数原型。

2. 在C代码中,定义C函数,并实现它。

3. 在C++代码中,使用C语言的函数指针类型(如int (*)(int, int))来声明C函数的地址,然后通过这个地址来调用C函数。

示例代码:

// C++代码

#include <iostream>


typedef int (*c_function_type)(int, int);


extern "C" {

int add(int a, int b);

}

int call_c_function() {

c_function_type c_add = reinterpret_cast<c_function_type>(add);

return c_add(3, 4);

}


// C代码

#include <stdio.h>


int add(int a, int b) {

return a + b;

}


int main() {

std::cout << "Called from C++: " << call_c_function() << std::endl;

return 0;

}

最近发表
标签列表