【发布时间】:2019-06-28 13:56:20
【问题描述】:
这是很常见的情况,我有大约 2500 个 dll。 所有这些dll都是用vb6制作的。
场景:运行主 .exe 文件并从中调用 .dll。运行 Crystal 报表视图时,它就像一个魅力。
场景 2:通过调试模式运行由 .NET 制作的 .exe 文件是一种魅力。
场景3:通过RUNTIME运行.NET生成的.exe文件,抛出如下异常。
描述:进程因未处理的异常而终止。 异常信息:异常代码c0000005,异常地址0F5E6BD0
完整堆栈消息在链接上可用:Full exception message
尝试了两种方法。
将 .dll 作为引用添加到 .exe
通过
CreateObject添加
这是我的作品之一。
Dim obj As Object
obj = CreateObject("Partneri.clPartneri")
Microsoft.VisualBasic.CallByName(obj, "PrikaziFormu", CallType.Method, cConrADO,
cConADO, False, "", cJezik, rTagovi, rPrevodi, rPrava, 0, 0, cUsername)
请记住:通过调试运行此程序时,一切正常。
我现在使用的唯一解决方法是像 vb6 中的 Create .exe。从 .net exe 调用该 .exe 并将选项名称作为参数传递。在表单加载时,它会设置效果很好的对象。
【问题讨论】:
-
VB6 仅为 32 位。发生错误时,您的 .NET 应用程序是否以 64 位运行?
-
我认为你应该尝试这样的事情 stackoverflow.com/questions/52540578/… ,但对于 5000 个 dll,我希望你能得到更好的答案
-
@DaveInCaz 你不会相信我多么期望这会解决这个问题。设置目标 CPU - x86 没有解决它
标签: vb.net crystal-reports vb6 com-interop crystal-reports-2008