【发布时间】:2013-08-22 00:12:18
【问题描述】:
我有一个 Visual Studio 2010 项目,使用静态和动态库(.lib 和 .dll),该项目在发布和调试模式下都以 .exe 成功编译和构建,代码是 c 和 c++ .
将所有解决方案编译并打包到一个独立的.dll 文件的正确方法是什么。
我想要一个dll文件,我可以安全地加载到其他c、c++、c#项目中。
在我的情况下,我想将它加载到 teraterm 和其他简单的自行开发的 c# 应用程序中。
【问题讨论】:
-
解决方案本身无法编译为单个 dll。解决方案中的每个项目都是针对特定的构建目标构建的,无论是 dll、exe 还是其他东西。要只有一个 dll,您的解决方案中应该只有一个项目。您可能想要的是让一个项目编译为 dll(因此它可以加载到不同的应用程序中)和一个引用另一个项目并编译为 exe 的不同项目。
-
我无法确定这个问题是肤浅的还是深不可测的。也许我遗漏了一些东西,因为我不熟悉 teraterm 或者确实不熟悉将可执行文件包装到 DLL 中的原因——可执行文件和 DLL 用于不同的目的。也就是说,您是否完全控制了项目中涉及的所有 DLL? DLL 是显式链接(通过 lib 文件)还是使用
LoadLibrary调用?要制作单个 DLL,您需要将它们转换为使用静态链接。 -
这可能是一个细节,但意外的细节可能会破坏其中一种方法,因此:“...大部分代码是 c 和 c++。”和休息是由什么组成的?
-
@alk 所有代码都是 c 或 c++。谢谢
标签: c# c++ c visual-studio-2010 dll