从 .lib 文件创建一个.dll文件



在我提出问题之前,这里有一些关于我的开发环境的信息:

  • 操作系统: 视窗 64 位

  • IDE: Visual Studio 2013

我想通过 C# 项目控制设备。我从设备的生产者那里得到了什么:一个.h文件和一个静态库(.lib文件(。在C++控制台应用程序中,控件工作正常。 但是现在我在为 C# 构建 DLL 时遇到了一些问题

为了构建这样一个.dll文件,我创建了一个空的 C++ DLL 控制台应用程序,将 .h 文件复制到项目中,并将 .lib 文件引用到链接器(在解决方案设置中添加了"附加库方向"和"附加依赖项"(。

但在此步骤中,问题发生了。当我生成项目时,控制台打印

========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

日志文件没有显示任何错误,但我在调试(或发布(文件夹中没有DLL文件。

我尝试了什么:我添加了一个"假".cpp文件,我在其中实现了 .h-file 中的一个函数 -> dll 是构建的。所以我猜Visual Studio无法识别.lib文件。

下一步是使用 DllImport 命令编写 C# "包装器"。

提前感谢您的所有答案和提示。

在 Windows 上,函数不会自动从 DLL 导出,无论是在构建自己的源文件 (c/cpp( 中还是从链接的静态库中导出。

可以通过向函数声明添加__declspec(dllexport)来导出它们,也可以将"模块定义文件 (.def("添加到项目中,并列出要导出的函数。例如,这里的函数foo可以来自我的 DLL 中包含的静态库。

LIBRARY TEST
EXPORTS  
foo @1 

对于它根本不创建文件,不确定 MS 是否将其视为错误或功能,但如果项目没有实际的源文件,它不会创建 DLL。你至少需要一个,它甚至可以是空的。

最新更新