【问题标题】:Is it possible to use DllImport to access namespaces?是否可以使用 DllImport 访问命名空间?
【发布时间】:2013-06-10 12:13:57
【问题描述】:

我刚刚创建了一个非托管 C++ DLL,并试图在我的 C# 应用程序中使用 DllImport 来访问函数调用。但是,每个函数都属于自己的命名空间(有多个头文件、多个命名空间、多个类文件)。当我尝试调用函数 DllImport 时,它说找不到入口点,我不禁觉得它与命名空间有关。如何使用其独特的命名空间调用我的函数?谢谢。

【问题讨论】:

  • 你能提供一些代码吗?
  • 我假设您正确导出了函数?

标签: c# c++ wpf namespaces dllimport


【解决方案1】:

您可以使用dependency walker 查看任何dll 的导出函数名称。 这样你就可以调用损坏的函数名。

【讨论】:

    【解决方案2】:

    DllImport 将适用于“全局”C 函数,而不是 C++ 类 - 对于 C++ 类,您必须为所需的函数创建 C 包装器。看: using a class defined in a c++ dll in c# code

    【讨论】:

      【解决方案3】:

      如果要检查函数的导出名称,可以使用:

      dumpbin /exports my_native_lib.dll
      

      如果它没有显示任何导出,则函数的导出方式有问题,我们需要更多代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-27
        • 2020-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多