藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月6日 10:18


c程序中怎麼調用c++中定義的函數??急呀!!

c++文件   a.cpp:
#include <iostream.h>;

extern "C" a();

void b()
{
cout<<"BB";
}
main()
{
a();
}

c文件b.c:
#include
extern b();
void a()
{
printf("AA\n");
b();
}

CC a.cpp b.c -o a

編譯通不過,提示函數b未定義,請問怎麼在b。c中聲明a函數啊??
剛剛從無雙版主學得c++調c函數的聲明方法是
extern 「C」
怎麼在c中聲明C++的函數呢,不會是extern 「C++」吧,呵呵.
版主啊,快來救我啊,以前從來未有混合編程的經驗,這下慘了! :(
我想這個問題應該有代表性吧,高手們快出手啊! :lol:

c程序中怎麼調用c++中定義的函數??急呀!!

extern "C" a();
表示將a()以C格式輸出,可是你在b.c中用
extern b(),當然找不到了。再研究一個 extern "C"吧,
不要光看著會用,還要問問為什麼

c程序中怎麼調用c++中定義的函數??急呀!!

???
為什麼要寫那麼亂的代碼

統一使用一種語言c或c++不就可以了嗎

c程序中怎麼調用c++中定義的函數??急呀!!

不明白樓上的意思,我是要在b.c中的a()函數中調用寫在a.cpp中的b()函數呀!無雙版主教我一下,THKS

c程序中怎麼調用c++中定義的函數??急呀!!

都改成c或cpp不行嗎

為什麼一個程序要使用兩種語言來寫

這樣如果程序再大一點不累死啊
而且寫得很亂

一般使用兩種語言的話
也是一種編成lib或dll形式然後使用extern "c"聲明
另一種是程序本身

c程序中怎麼調用c++中定義的函數??急呀!!

extern "c"表示使用c的參數傳遞方式
對cpp的話試extern "cxx"等看看

c程序中怎麼調用c++中定義的函數??急呀!!

我就是想試驗一下,實際可能不會這樣,
extern "cxx"是什麼意思啊,c要大寫嗎?xx指「XX」字母還是代表任意的意思,要大寫嗎,沒辦法,太笨了,呵呵,版主可不要笑啊!!

c程序中怎麼調用c++中定義的函數??急呀!!

用C++的話函數一般都封裝成為類了,C沒辦法調用把。
如果連類都沒有,把文件名一改就是C了,對嗎?hehe

c程序中怎麼調用c++中定義的函數??急呀!!

看來c沒法調用C++中定義的函數了,在b.c中加
extern "cxx" b();
說語法錯
看來我是異想天開了,衷心謝謝無雙版主!!真是高人啊!!

c程序中怎麼調用c++中定義的函數??急呀!!

extern "C++" int b();

c程序中怎麼調用c++中定義的函數??急呀!!

不行啊,無雙,我在sco unix 下編譯出錯:

"b.c",line 4:error:Syntax error before or at :"C++"

你在什麼系統下做的啊?

c程序中怎麼調用c++中定義的函數??急呀!!

c中應該沒有辦法調用c++中的函數,除非你吧草c++中的函數聲明成c函數

c程序中怎麼調用c++中定義的函數??急呀!!

c程序中怎麼調用c++中定義的函數??急呀!!

-->    哎,我以前也見過這個問題,C++部分的程序是別的廠家提供的,我們這邊事先用C寫了個空的函數,結果最後拿到一起來編譯卻又通不過,而我們這邊是proc的程序,又不便改成C++的,頭疼死了!還好後來老天開眼,居然另搞到一套C的程序庫!

c程序中怎麼調用c++中定義的函數??急呀!!

樓上真是瞭解啊,經常有這種情況!

c程序中怎麼調用c++中定義的函數??急呀!!

終於搞定了!!可以調了!!真是柳暗花明又一村!!!^_^,謝謝幫助我的各位朋友!

c程序中怎麼調用c++中定義的函數??急呀!!

介紹一下吧!什麼編譯器,如何做的 :)

c程序中怎麼調用c++中定義的函數??急呀!!

extern "C++" int b();

這個在dev-c++下編譯成功的
但是我沒有寫兩個文件

c程序中怎麼調用c++中定義的函數??急呀!!

看來還是依賴編譯器特定的能力啊! :(

c程序中怎麼調用c++中定義的函數??急呀!!

應該不是

這個是C裡面支持的一個選項

我覺得每個編譯器都應該支持



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com