2015-01-09 62 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。

相关问题