DLL中如何應用函式指標與主程式互動

2021-04-22 06:52:02 字數 758 閱讀 9299

雖然在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...