IDL怎么把.cpp文件编译为.dll文件?是标准C++程序,不是C程序。

IDL怎么把.cpp文件编译为.dll文件?是标准C++程序,不是C程序。,第1张

为了实现与其他语言的集成开发,IDL拥有以下几个技术:

1) 调用外部程序

IDL调用其他语言功能的最简单的方法就是调用外部程序,即使用SPAWN方式。SPAWN产生一个子进程来执行一个命令或一系列的命令,调用时可以根据需要添加一系列关键字。

2)调用COM组件

IDL可以调用微软的组件对象模型(COM)和ActiveX控件,通过这种方式可对IDL进行功能扩展。具体实现是通过IDLcomIDispatch类实现com组件的调用,通过IDLcomActiveX类实现ActiveX控件的调用。

3) 调用Java类对象

通过IDL-Java bridge方法可以直接访问Java对象。

4)CALL_EXTERNAL方法

CALL_EXTERNAL方法是调用其他语言创建的动态库,需要先创建动态库,在IDL中创建与VC函数中定义的数据结构相匹配的数据结构;利用过程MAKE_DLL编译VC的函数和程序,生成在IDL中可以使用的动态连接库DLL;最后利用函数CALL_EXTERNAL通过动态连接库调用VC的函数。

5) DLM方式

DLM是IDL的功能扩展,DLM是通过C、C++等编译器建立的一个动态库(DLL)和一个DLM的ASCII文件。IDL启动时可自动加载并记录该ASCII文件中进行函数或类的喊蠢调用定义方式,这种方式郑碧陪的调用跟调用IDL自身的功能函数一样。该方式比普通的DLL动态库调用更灵活方便,可以与IDL进行无缝集成。

6) Callable技术

ENVI/IDL函数可以作为动态链接库被外部程序调用启动,称之为Callable IDL技术。慧陪使用Callable IDL技术,外部程序可以像在IDL环境中一样执行IDL的代码。

7)IDLDrawWidget和COM_IDL_Bridge技术

这两个方式都是基于COM组件的,使用跟Callable技术类似,其中IDLDrawWidget可以在其他语言框架下创建IDL的显示Draw组件,使得该技术非常适合用于在框架下进行ENVI/IDL 的可视化展示;而COM_IDL_Bridge则是非常完善的提供了ENVI/IDL 现有功能调用的支持。

另外,网上也有好多的方法

http://hi.baidu.com/pascal4/blog/item/f80a205b54b7af202834f0a3.html。

如果你想使用COM组件的话,可以用vc工具,生成DLL库(使用vc中的DLL工程来实现),然后为DLL封装一个COM(使用vc中的ATL工程来实现)。

1.cpp是编译产生2进制代码,这个2进制代码就是exe

2.qt库就是一大堆已经写好的函数,跟你引用<stdio.h>瞎哪或就能输入输出一样,引用了QT就能磨伍写图形。

3.makefile是用来帮助计算机编译C源文件的。在linux里面比较常用,告诉了计算机,要编译我的C源文件,需要什么版本的编译器,需要什么包,什么头文件,如果不满足就提示,如果满足就编译,还记录了C源文件的位置(因为不止一个),编译之后放到哪。等等。

4.静态链接库是lib,在编译的时候,将里面的代码直接写入exe中,随身带。

dll因为里缓键面东西比较通用,一般电脑都有,所以在用的时候从系统里面拿就行。于是就不写这部分了,只标记在哪个dll里面。


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

原文地址: http://outofmemory.cn/tougao/8176926.html

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

发表评论

登录后才能评论

评论列表(0条)

保存