怎么用多种开发语言混合编写和开发程序?
多语言编程要看怎么做。
1).net平台上的开发语言可以实现无缝通讯。
2)VB/C++/Delhpi开发出DLL后也可以被其他语言调用。
3)任何语言开发后的EXE文件支持命令行参数也可以互相通讯。
4)通过共享内存、共享文件、共享注册表等方法也可以实现互相通讯。
以上来自:https://ask.zol.com.cn/x/3034166.html
起始所有程序都是一样的,最终都是机器码,只是在编写时使用的语言不同(编程语言都是程序的抽象,为了编程方便,本身并不是可运行的程序,最终必须编译成机器码才能运行,不同语言只是不同人编的,用的语法不同),你写的源文件无论是任何语言写的,最终编译的结果都是机器码。 函数调用在机器码就是很简单的一步,将参数表要求的参数值放入堆栈(顺序有约定),然后使用 jmp 指令跳转到要调用的函数的函数地址即可,别的程序不管你怎么实现,只要你告诉我参数表,和函数地址就能调用,所有程序最终都是机器码,自然也符合这个规则。。。 所以实现互调,只要将对方的接口程序文件映射到自己的进程中,然后预先知道他的参数表,得到他的接口函数地址,将参数放入堆栈,然后跳转到函数地址, 这样你就实现调用。。。。 winodws提供了一个文件类型叫做.dll 动态链接库,如果你希望让其他程序调用,只用将文件编译成dll即可,他就是一个程序文件,纯机器码,可以让任何程序调用。。。。
具体实现方法,通过loadliabroray("xxxxx\xxx.dll"),将该文件映射到进程,getprocaddress("函数名"),得到他的函数地址,假设你已经知道这个函数格式为 int func(int,int,char),你就定义一个该类型的函数指针 ,将getprocaddress("函数名")的地址给这个函数指针,按C语言格式调用即可,很简单的,这些都是操作系统的功劳,如果你学学windows系统编程,就知道了。。。
还有一种方式是,把另一个程序当做一个服务器程序,通过约定的数据来间接调用。。。。比如有个字符串,叫“吃饭”,你只要将这个“吃饭”这两个字发给另一个程序(操作系统提供了一个叫管道的内核对象,通过它,你可以给也使用该管道的程序发数据),他实现编了程序知道这是要干什么,然后就自己执行。。。
追问:
追答:
.c 文件不是程序,只是程序的源文件,如果没有编译器的支持是不能互调的,如果你不信你可以百度。。。提到语言间互调,都是先生成 dll ,lib,com等程序文件(全部是编译之后的代码)。。。
你听说过在 vb 中写C代码编译的吗??? 源文件又不是程序,想混编你的编译器必须能编译多种语言,而且还能连接成功,那也太万能了,你想多了。。。 生成dll文件,别无他法。。。。
以上来自:https://zhidao.baidu.com/question/1893823414726973940.html