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 打赏 收藏 转发到动态 举报
写回复
用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/

2,463

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧