2015-01-09 93 views
-3

例如,我有一個簡單的程序是這樣的:如何爲程序創建外部API?

//Program A 
#include <stdio.h> 

int add(int a, int b) 
{ 
    return a + b; 
} 

int sub(int a, int b) 
{ 
    return a - b; 
} 

int main(void) { 
    doSomeStuff(); 
    return 0; 
} 

我已經開始並正在運行。並有計劃B. 我的問題是:

  1. 我怎樣才能從我的節目B連接到程序,並要求它運行,例如,函數添加?
  2. 如何編寫用於總是運行程序A的外部API?

或者,也許類似的例子,考慮一些數據庫和它的驅動程序。駕駛員如何請求數據庫?

+0

您的問題越具體,我們就可以提供更好的幫助。 – CephBirk 2015-01-09 22:46:46

+1

你想在這裏調用類似'add'和'sub'的函數,換句話說就是創建一個*庫*?或者你想讓這個程序運行並且調用函數作爲*遠程過程調用*(使用任何RPC協議)?或者是什麼? – hyde 2015-01-09 22:52:58

+1

您應該考慮*程序A和程序B如何連接。他們是否在相同的過程?同一臺電腦?他們用什麼協議來談話? – 2015-01-09 22:52:59

回答

1

您必須創建動態庫。對於Windows,它是.DLL。在Unix世界也存在,但我不是那裏的專家。 DLL導出一些函數(API)。當你的EXE文件使用其中的一些時,DLL在運行時被OS加載並且必要的功能被「連接」(即EXE中的函數調用被重定向到加載的DLL的入口點)。你可以找到DLL的例子,例如在Codeproject.com。

相關問題