首页 文章

Delphi .Net dll部署(在另一台PC上)

提问于
浏览
0

我开发了使用.Net dll(用C#编写)的Delphi应用程序,它使用另一个.Net dll(可能是C#) . 让我给他们命名A.dll和B.dll .

我有A.dll的源代码但不是B.dll的源代码 . 我不能使用Delphi应用程序中的B.dll,因为B.dll只是为C#应用程序编写的(即没有COM互操作)所以我使用我的A.dll与B.dll一起工作 .

B.dll创建2个管道来与A.dll交换消息 . 问题是B.dll不能(!)连接到不同计算机上的这些管道 . 但是,如果我创建A.exe而不是A.dll,则绝对可以(管道已连接且整个消息交换过程正常) .

在我的电脑上,我总是构建A.dll和Delphi应用程序 . 我如何理解Visual Studio自动使用命令1)regasm - 注册A.dll,2)tlbexp - 获取A.tlb文件 .

之后,我通过“导入类型库命令”将A.tlb导入Delphi应用程序 .

在另一台计算机上这是问题,在A.dll程序管道永远不会连接(我已经使用日志来理解这一点) . 通过说“从未连接”我的意思是无限等待pipe.WaitForConnection()命令的结果(在c#中) .

任何人都可以帮我解决这个问题吗?为什么“A.exe”适用于Delphi app而不是“A.dll”?

谢谢

1 回答

  • 0

    我已经调查了这个问题 . 首先,在其他dll中使用dll是个坏主意 . 根据许多文章,GetProcAddr和其他一些功能可能会遇到麻烦 . 其次,我开发了C#app与B.dll和Delphi应用程序进行通信 . 另外,我使用管道来做到这一点 .

相关问题