0

更新1:

我想知道是否可以引用 .lib 文件,但似乎不能。如果这是真的,而且我没有 C++ 项目的源代码,我该如何使用它的方法?顺便说一句,我正在使用 FastCV 库。


我遇到了需要从 C# 代码调用 C++ 方法的情况。C++ 生成的文件结构:

 lib
 --libfastcv.lib
 --vc120.pdb inc
 --fastcv.h
 --fastcv.inl
 --stdint.h

我知道如何从 C# 调用 C++ 方法:

[DllImport("libfastcv.lib",CallingConvention=CallingConvention.Cdecl)]
public static extern <ReturnType> <MethodName>(<Parameters>);

但我认为 .h 和 .inl 文件也需要包含在我的 C# 项目中。那么如何包含它们呢?

非常感谢。

4

2 回答 2

2

他们没有。相反,您需要在自己的代码中构建/使用二进制兼容类型,并使用它们。(并且,您从dll导入方法,而不是从lib)。

于 2014-03-05T14:30:00.647 回答
0

你不必做任何包含。DLLImport 应该足够了。

要查看可以导入的方法,可以使用 DependencyWalker 或我最喜欢的 Tool CFF Explorer

我经常使用任何需要在标头中定义一些常量的 WINAPI 函数。我也总是必须在我的 C# 代码中定义它们,没有办法“导入”它们。

于 2014-03-05T14:29:02.540 回答