雖然在dll中定義指向主程式的函式指標,看似程式邏輯有些混亂,但工程實際應用中有時卻得這麼幹,因此簡單總結一下,函式指標在開發中的應用。
第一步: 建立一般的動態庫工程win32s1
第二步: 在動態庫.h檔案中,自定義函式指標型別,宣告匯出函式
注:匯出函式應用到外部主程式的相關計算與結果
typedef float (*outfun)(int, int, int); //函式指標型別
// typedef + 型別標識 + (指標變數名稱) + (引數列表)
sbui_api void getprofit(outfun fun); //宣告匯出函式
注:匯出函式的返回型別與函式指標應用無關
第三步: 在動態庫的.cpp檔案中,實現乙個由外部函式執行 + 動態庫函式執行的乙個動作
voidgetprofit(outfun fun)
第四步: 在主程式中實現成本計算函式 setprofit,並呼叫dll函式
float setprofit(int _ngrossincome, int _nlabourcosts, int _nmaterialcosts)
#include "dll1.h"
#pragma comment(lib,"win32s1.lib")
void ctestdlg::onbutton1()
VB中如何傳遞指標給DLL
vb預設的傳遞方式就是傳指標 byref,也就是把變數的位址傳遞給所呼叫的函式 如果要傳值 也就是把變數的值傳遞給所呼叫的函式 反要在引數宣告前加byval。所以如果你傳遞的引數是普通的資料型別,在引數前什麼都不要加就行了。如c語言宣告為 void stdcall myproc short npar...
如何呼叫 DLL 中的函式
如何呼叫dll中的函式 在dll工程中的 cpp中函式定義如下 extern c declspec dllexport int add int a,char b 一 顯示鏈結 呼叫的dll的主工程的 main檔案中 如下 include include include intmain 呼叫的dll的...
C與指標 使用指標無法修改主函式的值
include include define ok 1 define error 0 typedef struct lnode lnode,linkedlist intinitlist l linkedlist l printf init data d n l data return func st...