1

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

4

3 回答 3

3

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

dumpbin /exports my_native_lib.dll

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

于 2013-06-13T22:51:51.057 回答
2

DllImport 将适用于“全局”C 函数,而不是 C++ 类 - 对于 C++ 类,您必须为所需的函数创建 C 包装器。请参阅: 在 c# 代码中使用 c++ dll 中定义的类

于 2013-06-13T22:57:21.200 回答
1

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

于 2013-06-18T08:51:14.767 回答