我正在尋找一種爲C程序創建插件接口的方法。在一個簡短的例子的利益,讓我們說,我有以下程序:如何爲C程序創建插件接口
#include <stdio.h>
int complexFunction(int a, int b) { return a+b; }
int main() {
int a = 3;
int b = 6;
printf("The result of C(a, b) is %d.\n", complexFunction(a, b));
return 0;
}
相反卻使用定義的,我想允許用戶自己的代碼,然後插在其實現。
我從來沒有與插件實現的工作我自己,但到目前爲止,我已經能夠拿出一個插件界面如下可能性:
- 創建一個「迷你腳本語言」,這我的程序可以解析並創建一個過程管道,然後將這些變量傳遞到該管道中。這將涉及腳本語言中每個可能操作的很多「通用」函數。
- 使用預先存在的腳本語言用於相同的目的(但是這可能是不可能的,因爲我需要一些非常專業化的腳本功能)。
- 允許用戶編寫和編譯包含
complexFunction(int, int)
定義的C文件,並在運行時動態加載該文件。這是最不安全的選擇,但爲了開發目的,它將是理想的(僅)我會編寫自己的插件,並且可以動態地爲我的程序添加功能。
我的問題是雙重的:
- 什麼是在應用程序中處理插件功能的方式嗎?
- 我該如何完成(3)/is (3)甚至可能在C?在
fopen
之後,我可以以某種方式將它用作當前程序中的代碼嗎?
此答案是Windows特定的。 – rici