【问题标题】:C++ unmanaged wrapper not working in web project/iisC++ 非托管包装器在 web 项目/iis 中不起作用
【发布时间】:2014-08-31 14:16:21
【问题描述】:

我收到了一个 C++ 非托管代码的包装类,我需要将其添加到我的 Web 项目并通过 C# 调用。

1) 在 c# 桌面应用程序项目中

当我添加引用时,我只能添加包装 dll。无法添加非托管 dll。我认为这不是问题。然后,当我正在构建和运行时,它会给出一个错误提示

无法加载文件或程序集“AskCmnWrapper.DLL”或其依赖项之一。找不到指定的模块。

然后我手动将我的非托管 dll 复制到 bin 文件夹。效果很好

2) 在 C# Web 应用程序中

我遇到了同样的问题。当我尝试使用 iis express (通过 vs2012) 运行它时,手动将我的非托管 dll 复制到 bin 文件夹中。但它不起作用。在 Web 应用程序中运行非托管 dll/包装器时是否需要进行任何特殊配置?

请指导我。 谢谢。

【问题讨论】:

    标签: c# c++ asp.net wrapper unmanaged


    【解决方案1】:

    您可能缺少一些必需的 C++ 可再发行组件或其他依赖项。在您的本机 DLL 上运行 Dependendy Walker 以查看缺少哪些。

    理想情况下,您希望创建一个包含要包装的本机库的源代码的 C++/CLI 项目,并在同一项目中在其之上编写托管 C++/CLI 包装器。这样,您的文件夹中只需要“包装器”(包含本机代码)。

    如果您没有源代码,并且您不能将库静态链接到您的 C++/CLI 项目中,那么您需要在目录中同时拥有包装 DLL 和本机 DLL在运行时,因为那时它们将被链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 2018-04-26
      • 2017-07-17
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多