如何在 C# 应用程序中使用 *.lib 文件?
Posted
技术标签:
【中文标题】如何在 C# 应用程序中使用 *.lib 文件?【英文标题】:How to use *.lib file in C# application? 【发布时间】:2010-05-17 10:17:11 【问题描述】:所以我有一些 .lib 文件(像 this one 一样生成)如何从我的 C# WPF 应用程序中使用它?
【问题讨论】:
【参考方案1】:如果您想使用 C# 中的本机库,则不需要 .lib 文件。在 .NET 中处理这种情况的方式是使用平台调用 (P/Invoke)。我建议您按照 MSDN 上的教程进行操作,它将帮助您入门:
Platform Invoke Tutorial
如果您想生成包装器,您可能需要查看 CodePlex 上的 P/Invoke Interop Assistant。请注意,此工具适用于原始 C/C++ 代码。使用 .dll 文件创建包装器是不可行的,因为本机 DLL 不存储导出函数的签名(如 this thread 中所述),而 lib 文件将以编译器特定的方式存储签名。
【讨论】:
.lib 文件至少可以帮助我创建一个包装器吗? 如果你只有一个 .lib 和 .h 文件,你可以为 lib 创建一个 dll 包装器,导出你需要的函数。 @Stephen Cleary:因为这是关于使用来自 C# 的本机代码,所以不需要 lib 文件。您只需要方法签名和包含该方法的本机 dll 的名称。以上是关于如何在 C# 应用程序中使用 *.lib 文件?的主要内容,如果未能解决你的问题,请参考以下文章
请问如何把lib(C语言编的)同其带有宏定义的.h文件封装起来 生成一个新的文件供C#调用?
本机 C++ 程序在使用 C++/CLI 和 C# 互操作 DLL 启动时崩溃