社区
VBA
帖子详情
VBA中怎样调用C#写的DLL文件?
jy02368430
2009-09-11 01:56:20
我用C#写了个DLL(试验用的),用VB6.0可以直接引用(成功),但是用Word的VBA确无法使用(可以引用,也能看见DLL里的方法,但是运行的时候“什么自动化错误”)代码中的ClassLibrary1就是C#写的dll
VB6.0
Word VBA
...全文
207
6
打赏
收藏
VBA中怎样调用C#写的DLL文件?
我用C#写了个DLL(试验用的),用VB6.0可以直接引用(成功),但是用Word的VBA确无法使用(可以引用,也能看见DLL里的方法,但是运行的时候“什么自动化错误”)代码中的ClassLibrary1就是C#写的dll VB6.0 Word VBA
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jy02368430
2009-09-13
打赏
举报
回复
[Quote=引用 5 楼 fhqainqq 的回复:]
在外部参照中加入你要使用的dll,还有如果必要在注册组件注册一下。
[/Quote]
已注册,因为vb6.0能正常使用
fhqainqq
2009-09-13
打赏
举报
回复
在外部参照中加入你要使用的dll,还有如果必要在注册组件注册一下。
jy02368430
2009-09-12
打赏
举报
回复
[Quote=引用 3 楼 chinaboyzyq 的回复:]
劝你还是用VC++6写这个DLL吧
C#是建立在Microsoft .NET Framework基础上的,也就是说要用C#,就必须使用.NET Framework,要使用C#写的动态连接库也必须使用.NET Framework,并且它的接口好象也与以前的不一样了。
另外我没明白的是你说VB6使用C#写的DLL成功,是怎么个成功?你调用C#的DLL中的函数或过程都能正常工作??
还有就是VB6能完成的任务,VBA却不一定能完成,也就是说VBA不等于VB6。
[/Quote]
哦,C#写的dll返回“ok”字符串,你可以看到vb6.0的MSGBOX能收到这个C#的返回值,所以运行
(Msgbox lb.test)时应该弹出一个消息框显示lb.test返回的“ok”,VB6.0能所以说成功
只是在VBA中同样的语句却是“自动化错误”
不用担心.NET Framework环境的问题,VB6.0能收到返回值说明C#写的dll能正常工作
chinaboyzyq
2009-09-11
打赏
举报
回复
劝你还是用VC++6写这个DLL吧
C#是建立在Microsoft .NET Framework基础上的,也就是说要用C#,就必须使用.NET Framework,要使用C#写的动态连接库也必须使用.NET Framework,并且它的接口好象也与以前的不一样了。
另外我没明白的是你说VB6使用C#写的DLL成功,是怎么个成功?你调用C#的DLL中的函数或过程都能正常工作??
还有就是VB6能完成的任务,VBA却不一定能完成,也就是说VBA不等于VB6。
jy02368430
2009-09-11
打赏
举报
回复
[Quote=引用 1 楼 feiyun0112 的回复:]
这样试试
dim ld as object
set ld=createobject("Classlibrary1.Class1")
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
[/Quote]
还是不行,情况一模一样,奇怪没有道理VB6.0行。VBA不行呀
feiyun0112
2009-09-11
打赏
举报
回复
这样试试
dim ld as object
set ld=createobject("Classlibrary1.Class1")
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
VBA
调用
dll
实例
VBA
调用
dll
是指定路径的,如果该路径下没有想调的
dll
怎么办,本文给出了一个解决方法
C#
DLL
调用
在visual C#
中
调用
DLL
源代码
SPSS统计自动化-
VBA
脚本开发
本课程是SPSS统计自动化和扩展编程系列视频课程
中
的一个,主要介绍用SPSS提供的
VBA
语言WinWrap Basic-COM结合SPSS类库和命令语法实现统计自动化和扩展编程,帮助您大幅提高数据分析和可视化的工作效率。具体...
使用Windows API方式直接
调用
C#的
DLL
,支持多音字转拼音和Gzip解压缩
这两年,我在
VBA
应用方面一直有两大痛点:多音字转拼音和64位下的GZIP解压缩。前者词库太大,
vba
不好处理;后者找不到可以直接
调用
的64位库。为了解决这两个长期困扰我的问题,以及未来经常会遇到的其它问题(例如AES加解密、验证码图片处理、文本编解码、大数的数学运算、多线程等等),我考虑在
VBA
中
调用
C#的
dll
来彻底解决。 正常情况下,
vba
调用
C#的
dll
要通过com方式先注册后运行,这在很多场合是不方便的,因此我采用给C#
dll
加上导出函数的方式,使C#的
dll
能够被其它语言以API方式直接
调用
,要做到这一点,需要对托管代码的
DLL
做一些特殊的处理,以确保提供导出函数接口签名给第三方
调用
。 本程序演示了
VBA
调用
C#
DLL
实现多音字转拼音和GZIP解压缩两大功能,支持32位和64位操作系统。需要.net 4.0或以上的运行环境。
SuperDotNetAPI:API方式直接
调用
C#的
DLL
,支持多音字转拼音、Gzip解压缩、公式计算(
VBA
、C++、VB、Delphi甚至java都可以)
这两年,我在
VBA
应用方面一直有几大痛点: 1、多音字转拼音; 2、64位下的GZIP解压缩; 3、数学公式计算; 4、离线
中
文OCR识别(见excelhome)。 为了解决这几个个长期困扰我的问题,以及未来经常会遇到的其它问题(例如AES加解密、验证码图片处理、文本编解码、大数的数学运算、多线程等等),我考虑在
VBA
中
调用
C#的
dll
来彻底解决。 正常情况下,
vba
调用
C#的
dll
要通过com方式先注册后运行,这在很多场合是不方便的,因此我采用给C#
dll
加上导出函数的方式,使C#的
dll
能够被其它语言以API方式直接
调用
,要做到这一点,需要对托管代码的
DLL
做一些特殊的处理,以确保提供导出函数接口签名给第三方
调用
。 下面的附件演示了多音字转拼音(自带六十多万词库,无需微软拼音)和GZIP解压缩、数学公式计算。 本
DLL
库可以被C++、VB6、Delphi、
VBA
等多种语言
调用
(接口提供
VBA
示例,其它语言自己
写
。)。支持32位和64位操作系统。 运行环境:需要.net Framework 4.0或以上,支持XP。
VBA
2,463
社区成员
10,807
社区内容
发帖
与我相关
我的任务
VBA
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
复制链接
扫一扫
分享
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章