请选择 进入手机版 | 继续访问电脑版

C++编程

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2580|回复: 2

[求助] 封装好的class可以修改成dll供其他语言调用吗?

[复制链接]

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
发表于 2015-11-19 13:18:03 | 显示全部楼层 |阅读模式
本帖最后由 ID紫麒麟 于 2015-11-19 13:24 编辑

如题,我目前得到的答案是只有封装成com组件,或者是修改代码。另外找到一个说法,不清楚能不能行,准备有空试试:
c++类封装成dll
如果已经写好了一个C++的类,希望把它做成dll动态链接库,这里介绍一种简单的方法。
利 用VC6新建工程时选择win32 dynamic-Link Library,然后添加头文件和cpp文件。假设类名为exp,添加头文件exp.h,头文件中声明类的定义,添加exp.cpp,其中是成员函数的具 体定义。与一般写类的定义不同,在exp.h中需要写成
class __declspec(dllexport) exp
{
}
从而说明以后从dll要被导出的类是哪一个。这样编译完就会产生exp.dll和exp.lib两个文件。
      当已经生成dll后,可以在其它程序中调用dll中的类和成员函数。方法如下:
      a)把exp.dll和exp.lib复制到调用程序的执行路径下,注意不是debug路径下。
      b)在project->setting->link里添加exp.lib
      c)把exp.h复制到调用程序的执行路径下,将__declspec(dllexport)改成__declspec(dllimport)
     这样在主程序中就可以使用exp.h中声明的类和它的成员函数了。



回复

使用道具 举报

8

主题

31

帖子

323

积分

版主

Rank: 7Rank: 7Rank: 7

积分
323
QQ
发表于 2015-11-19 20:32:14 | 显示全部楼层
我记得导出类是别的程序用不了的,比如DLL导出class A 这个A是VB用不了的,只有COM才行,COM是跨语言的
VC纵横、磐实编程网
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2015-11-19 21:00:17 | 显示全部楼层
嬴政 发表于 2015-11-19 20:32
我记得导出类是别的程序用不了的,比如DLL导出class A 这个A是VB用不了的,只有COM才行,COM是跨语言的 ...

嗯,是啊。。。本来还想着封装好的类直接用来着。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|C++编程  

GMT+8, 2019-7-22 19:43 , Processed in 0.109375 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表