怎样用多种语言混合编写程序?

怎样用多种语言混合编写程序?,第1张

多语言编程要看怎么做。

1).net平台上的开发语言可以实现无缝通讯。

2)升明VB/C++/Delhpi开发出DLL后也可以被其他语吵仔告言调用。

3)任何语言开发后的EXE文件支戚猜持命令行参数也可以互相通讯。

4)通过共享内存、共享文件、共享注册表等方法也可以实现互相通讯。

在 .NET 环境下,程序可以用 VB 或 C# 写中间类库,岩掘然后拼成最终程罩轿序。

用各种语言写的 DLL 库也可供其他语言调用。

在有些语言中,可以直接嵌入汇编机器指令(TURBO PASCAL中 有物枣肆 inline 嵌入)。

起始所有程序都是一样的,最终都是机器码,只是在编写时使用的语言不同(编程语言都是程序的抽象,为了编程方便,本身并不是可运行的程序,闷弯正最终必须编译成机器码才能运行,不同语言只是不同人编的,用的语法不同),你写的源文件无论是任何语言写的,最终编译的结果都是机器码。 函数调用蚂悔在机器码就是很简单的一步,将参数表要求的参数值放入堆栈(顺序有约定),然后使用 jmp 指令跳转到要调用的函数的函数地址即可,别的程序不管你怎么实现,只要你告诉我参数表,和函数地址就能调用,所有程序最终都是机器码,自然也符合这个规则。。。 所以实现互调,只要将对方的闹祥接口程序文件映射到自己的进程中,然后预先知道他的参数表,得到他的接口函数地址,将参数放入堆栈,然后跳转到函数地址, 这样你就实现调用。。。。 winodws提供了一个文件类型叫做.dll 动态链接库,如果你希望让其他程序调用,只用将文件编译成dll即可,他就是一个程序文件,纯机器码,可以让任何程序调用。。。。

具体实现方法,通过loadliabroray("xxxxx\xxx.dll"),将该文件映射到进程,getprocaddress("函数名"),得到他的函数地址,假设你已经知道这个函数格式为 int func(int,int,char),你就定义一个该类型的函数指针 ,将getprocaddress("函数名")的地址给这个函数指针,按C语言格式调用即可,很简单的,这些都是 *** 作系统的功劳,如果你学学windows系统编程,就知道了。。。

还有一种方式是,把另一个程序当做一个服务器程序,通过约定的数据来间接调用。。。。比如有个字符串,叫“吃饭”,你只要将这个“吃饭”这两个字发给另一个程序( *** 作系统提供了一个叫管道的内核对象,通过它,你可以给也使用该管道的程序发数据),他实现编了程序知道这是要干什么,然后就自己执行。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12405206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存