C语言调用C++函数

来源:互联网 发布:车载导航电子狗软件 编辑:程序博客网 时间:2024/05/17 09:38

在是此功能需要使用到extern “C”
头文件如下

#ifndef GETWH_H#define GETWH_H#include<stdio.h>#include<stdlib.h>#include<string.h>void getWH(const char* filename,int* width ,int *height);#endif // GETWH_H

C++中代码

#include <iostream>#include"MediaInfoDLL/MediaInfoDLL.h"#include"string"using namespace std;using namespace MediaInfoDLL; //extern “C” 按照标准来实现   关键点extern "C"{#include"getwh.h"}void getWH(const char*filename,int*width,int *height){    MediaInfo MI;    String w,h;    MI.Open(__T(filename));    w = MI.Get(stream_t::Stream_Video,0,__T("Width"));    h = MI.Get(stream_t::Stream_Video,0,__T("Height"));    *width =atoi(w.c_str());    *height=atoi(h.c_str());    return ;}

c调用

#include <stdio.h>#include"getwh.h"int main(){    int w=0;    int h=0;    getWH("/home/liwei/vlc-2.2.0/test.265",&w,&h);    printf("w =%d,h=%d\n",w,h);    printf("Hello World!\n");    return 0;}