Re: [問題] 外部函數使用時機
※ 引述《bzgibson (B'z)》之銘言:
我想我來回答一下第一個問題,
我想請問一下外部函式的使用時機?
如果你想寫一個Function供其它人使用,甚至放諸四海皆準,
那你就必需使用外掛函式.
如何開始撰寫外掛函式?
如果你手邊剛好有Visual C++的話,照下的步驟你就可以得到一個很好的範例:
File->New->(Project)Win32 Dynamic-Link Library,
點選 "A Dll that exports some symbols"
我把其中一小段自動產生的.h Copy過來:
//--------------------------------------------
#ifdef AAA_EXPORTS //AAA是我project的名稱
#define AAA_API __declspec(dllexport)
#else
#define AAA_API __declspec(dllimport)
#endif
AAA_API int fnAaa(void); //外掛Function的宣告
//--------------------------------------------
之後你只要在*.cpp裡撰寫:
AAA_API int fnAaa(void)
{
//your code here
//end
return 1;
}
在Compiler後會產生*.dll及*.lib <=這就是要供人家使用的東西
其它人如何使用我撰寫的外掛函式?
在程式裡include外掛函式的*.h,並在Project裡加入外掛函式的*.lib,
*.dll也要放置在相同的目錄下(若未指定路徑).
其實也業界有些很常用,用到爛的有名Lib,
像是美商國家儀器NI出的GPIB連線Library: BorlandC_gpib-32.obj
由麻省理工學院開發並發布在自由軟體協會(GNU)的快速傅立葉轉換Library
(參見http://www.fftw.org/)
以上是工科的學生及業界比較會知曉的東西,
這樣為何要用外掛Lib的動機及理由就很明顯了,那就是:
如果你不懂快速傅立葉轉換,你老闆又叫你下禮拜做出一套來,
你自然會開始Google,並學會外掛Lib的完整使用方法...
: 第一個問題:我想請問一下外部函數的使用時機??
: 例如:extern void func(xxxxx)
: 我專案裡的main呼叫A檔的函式
: 或者
: A檔呼叫main定義的函式
: 我都沒使用到extern,想請問哪種情況下才需要宣告成外部函式????
: 第二個問題:function pointer常用到哪個地方????好難使用阿XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.218.105.109
→
11/02 16:12, , 1F
11/02 16:12, 1F
→
11/02 16:13, , 2F
11/02 16:13, 2F
推
11/02 16:14, , 3F
11/02 16:14, 3F
→
11/02 16:14, , 4F
11/02 16:14, 4F
→
11/02 16:14, , 5F
11/02 16:14, 5F
→
11/02 16:49, , 6F
11/02 16:49, 6F
→
11/02 16:50, , 7F
11/02 16:50, 7F
→
11/02 16:52, , 8F
11/02 16:52, 8F
→
11/02 16:54, , 9F
11/02 16:54, 9F
推
11/02 17:01, , 10F
11/02 17:01, 10F
推
11/02 17:34, , 11F
11/02 17:34, 11F
推
11/02 17:43, , 12F
11/02 17:43, 12F
推
11/02 18:07, , 13F
11/02 18:07, 13F
推
11/02 22:16, , 14F
11/02 22:16, 14F
→
11/03 09:34, , 15F
11/03 09:34, 15F
討論串 (同標題文章)