【问题标题】:.NET COM DLL throwing exception when used in Delphi.NET COM DLL 在 Delphi 中使用时抛出异常
【发布时间】:2011-05-20 10:50:03
【问题描述】:

我有一个使用 VS2010 用 C# 生成的 COM DLL,在 VS2910 中使用它,它工作正常,但是当我尝试使用 Delphi 7 中的 DLL 时,导入了 .tlb 文件,一些函数工作正常,但是一个似乎会产生以下错误。
Could not load file or assembly 'InnovateCV, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c06107b7da48b1da' or one of its dependencies. The system cannot find the file specified.
不幸的是,它不知道是什么无法加载,InnovateCV 是我的 DLL,并且已加载,从数据值为“系统”的异常中获取更多信息.Collections.ListDictionaryInternal'。不幸的是,我的 COM DLL 正在调用第三方 .NET DLL,这是引发异常的地方。有没有办法找到它无法加载的内容。

我已经尝试使用 Depends.exe,并且没有任何可以看到的 DLL 丢失。

任何帮助将不胜感激。

【问题讨论】:

  • 有没有可能它失败的函数是一个相当新的添加,并且 delphi 代码没有引用程序集的最新版本?
  • 不,系统上只有一组 DLL,因此 Delphi 和 C# 应用程序与相同的应用程序通信。 COM DLL 被重新注册,当我更改它以尝试调试正在发生的事情时。
  • 您使用 RegAsm 注册了 DLL? DLL 是否在 GAC 中注册?
  • 是的,DLL 在 RegAsm 中注册并在 Delphi 类型库导入向导中显示良好,未在 GAC 中注册,Delphi 7 对 GAC 一无所知。
  • 是所有对第三方 DLL 的调用都抛出这个异常还是只有一些?第三方DLL和你的DLL和Delphi-EXE在同一个目录?

标签: c# delphi dll com delphi-7


【解决方案1】:

解决了这个问题,这是Delphi App和.NET App之间的DLL名称冲突,所以Delphi App无法在DLL中找到所需的功能,我也不得不把所有DLL的在与 Delphi 应用程序相同的目录中。它现在正在工作。感谢您的帮助。

【讨论】:

    猜你喜欢
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    相关资源
    最近更新 更多