社区
C++ 语言
帖子详情
用C++编写的DLL中的一个类,如何输出给Delph、VB等语言调用?
Seahilly
2006-02-25 11:14:04
本人用C++编写了一个类,其中的方法采用虚拟特性,这样只要输出类的建构方法,就可以用虚拟标得的方式访问类的所有虚拟方法。用C++可以,用Delphi不行,不知为什么?
...全文
220
15
打赏
收藏
用C++编写的DLL中的一个类,如何输出给Delph、VB等语言调用?
本人用C++编写了一个类,其中的方法采用虚拟特性,这样只要输出类的建构方法,就可以用虚拟标得的方式访问类的所有虚拟方法。用C++可以,用Delphi不行,不知为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Seahilly
2006-02-28
打赏
举报
回复
难道没人能回答?
Seahilly
2006-02-27
打赏
举报
回复
??
Mephisto_76
2006-02-27
打赏
举报
回复
应该是可以的,因为C中有结构,只要在C++走使用抽象的类,即基类中所有的成员方法都是纯虚方法。在派生的每个DLL都提供一个CreateObject和DestroyObject方法以创建和消除当前的派生对象。用LoadLibray和GetProcAddress来动态取得基类对象的指针,通过基类对象指正进行调用。
xiayuxia
2006-02-27
打赏
举报
回复
vb里面 不是也一样可以 调用 LoadLibrary api的吗?
Seahilly
2006-02-27
打赏
举报
回复
??
langzi8818
2006-02-26
打赏
举报
回复
没有试过。。。
COM好了用
奥爸
2006-02-26
打赏
举报
回复
我估计不能实现
Seahilly
2006-02-26
打赏
举报
回复
??
Seahilly
2006-02-26
打赏
举报
回复
我的问题可能是:用C++编写的Dll,Dll内有类输出(虚拟表方式),如何使其能够在其他语言中调用?
wshcdr
2006-02-26
打赏
举报
回复
不明白LZ的意思
就算用COM,在VB中也不可以使用其中的类吧
YufengShi
2006-02-26
打赏
举报
回复
c++写的dll还是用com吧
不然就学学win32api,不过不要用类.
Seahilly
2006-02-26
打赏
举报
回复
谢谢大家的回答。原来我用这个方法,将微软VC++的类(有MFC)映射出来,并且在Delphi、VB中使用(实际是COM规范)。但是改用微软的C++ 后,则调用程序能够连接到Dll,但是C++的DllMain都没有驱动,创建类的导出函数也不能用。
Jagen在路上
2006-02-26
打赏
举报
回复
这种方法只能适用于相同的C++编译器,即使都是C++编译器,但是属于不同厂商也是不行的,有时甚至同一个厂商不同版本都不行。因为C++有一个概念叫作ABI,即应用程序二进制接口,不同厂商或不同版本的ABI很难相同,这就导致楼主所描述之方法无法实现。
但是如果在编程中强制使用某些二进制规范的话,比如COM规范,使可以做到的,但这往往需要操作系统的支持才行。可行的方法是采用API方式导出具体函数,因为每个可以运行在Windwos上的编译器在这里必须相同。
guyanhun
2006-02-26
打赏
举报
回复
如果c++编写一个类供其他语言调用的话,
好像要用 extern “C”,
避免编译器为函数改名,因为c++支持函数重载,
往往函数的真实名字不是原本的名字了。
Seahilly
2006-02-25
打赏
举报
回复
提问中有错字:
本人用C++编写了一个类,其中的方法采用虚拟特性,这样只要输出类的建构方法(用一个函数),就可以用虚拟表的方式访问类的所有虚拟方法。用C++可以,用Delphi不行,不知为什么?
springboot(酒店管理系统)
开发
语言
:Java JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.6/5.7(或8.0) 数据库工具:Navicat 开发软件:idea 依赖管理包:Maven 代码+数据库保证完整可用,可提供远程调试并指导运行服务(额外付费)~ 如果对系统的
中
的某些部分感到不合适可提供修改服务,比如题目、界面、功能等等... 声明: 1.项目已经调试过,完美运行 2.需要远程帮忙部署项目,需要额外付费 3.本项目有演示视频,如果需要观看,请联系我 4.调试过程
中
可帮忙安装IDEA,eclipse,MySQL,JDK,Tomcat等软件 重点: 需要其他Java源码联系我,更多源码任你选,你想要的源码我都有! 需要加v19306446185
BP神经网络matlab实例.doc
数学模型算法
设计.zip
设计.zip
基于 Spring Cloud 组件构建的分布式服务架构
Java SSM项目是一种使用Java
语言
和SSM框架(Spring + Spring MVC + MyBatis)开发的Web应用程序。SSM是一种常用的Java开发框架组合,它结合了Spring框架、Spring MVC框架和MyBatis框架的优点,能够快速构建可靠、高效的企业级应用。 1. Spring框架:Spring是
一个
轻量级的Java开发框架,提供了丰富的功能和模块,用于开发企业级应用。它包括IoC(Inverse of Control,控制反转)容器、AOP(Aspect-Oriented Programming,面向切面编程)等特性,可以简化开发过程、提高代码的可维护性和可测试性。 2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、渲染视图和管理流程的功能。 3. MyBatis框架:MyBatis是
一个
持久层框架,用于与数据库进行交互。它提供了一种将数据库操作与Java对象映射起来的方式,避免了手动
编写
繁琐的SQL语句,并提供了事务管理和缓存等功能,简化了数据库访问的过程
【微信小程序毕业设计】书店系统开发项目(源码+演示视频+说明).rar
【微信小程序毕业设计】书店系统开发项目(源码+演示视频+说明).rar 【项目技术】 微信小程序开发工具+java后端+mysql 【演示视频-编号:246】 https://pan.quark.cn/s/cb634e7c02b5 【实现功能】 用户信息管理,图书信息管理,图书
类
型管理,图书留言管理,论坛信息管理等
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章