【问题标题】:How to convert .dll project into .exe in MFC 12.0如何在 MFC 12.0 中将 .dll 项目转换为 .exe
【发布时间】:2015-11-09 20:49:45
【问题描述】:

我在MFC 中有一个最初开发为 .dll 项目的项目,但我想将此项目转换为 .exe 应用程序。我已更改项目设置,如下所示,但没有帮助。

编辑:此外,我已将链接器属性更改为Project properties -> Linker -> General -> Output file .. set to .. .Debug\DirBkgndExt.exe

编译时出现以下错误。

我用谷歌搜索了它,在一些博客上,人们建议将现有项目中的所有内容复制粘贴到可执行类型的新项目中。由于这个项目有点庞大,所以这个选项听起来不太好。

【问题讨论】:

  • 没有水晶球了。有任何错误信息吗?会发生什么?
  • @harper .. 我已经编辑了我的问题.. 请检查一下
  • 1.您的 dll 的入口点是 DllMain();你写的是 main() 还是 WinMain()? 2. 它应该如何与用户交互?
  • 我没有改代码...
  • 那么你真正想要的是什么?即使你成功编译并链接了你的新exe,你打算用它做什么?它是否实现了任何 UI?它是使用某些参数调用的单个函数吗?今天这个 DLL 是如何使用的?可能您只需要创建一个与其交互的应用程序,并将其保留为 dll?

标签: visual-c++ visual-studio-2013 mfc qt-mfc-migration


【解决方案1】:

使用应用程序向导创建一个新项目并将所有源文件移动到新项目中可能会更简单。

问题在于向导添加了一些属性表到项目中。当您更改项目类型时,它们可能不会被切换。

在我的项目中,我可以在项目设置中看到我无法影响的 DLL 的链接器选项 /DLL。检查您的链接器设置并查看命令行选项。

同时打开属性管理器并检查添加了哪些属性并替换它们。

但同样:对我来说,创建一个新的适当项目并将源文件移动/添加到其中/向其中添加/添加源文件对我来说更简单。

【讨论】:

  • 这不是我正在寻找的解决方案,尽管这可以被视为最后的选择.. 无论如何感谢您的时间..
  • 在属性管理器中比较附加的属性表。或者创建两个项目(DLL/EXE)并比较项目文件。
【解决方案2】:

您希望在这里发生什么? DLL 没有入口点(它有,但对于独立应用程序没有入口点),那么在运行 exe 时软件应该做什么?您需要提供一个“驱动程序”来启动您想要发生的任何事情。制作一个新的 exe 应用程序(win32 还是控制台?),将“引导”代码从中复制到您现有的应用程序中,并在那里执行初始化/参数解析等操作。

您可能应该进行单独的配置:一个作为 dll 构建,一个作为 exe 构建。然后使用宏来保留特定于每个构建的代码。这就是我为具有嵌入式测试/开发 UI 的库所做的。

【讨论】:

  • 是的,在我的研发中,我也得出了同样的结论。我已经明白我必须做什么了,谢谢。
【解决方案3】:

我想我和你的情况非常相似,除了我在相关的#defines 后面有代码,以便项目应该能够很容易地构建为 .exe(比如主要())。

我翻转了你所做的相同设置,加上以下(在 VS2012 中):

在链接器>输入中,确保模块定义文件是空白的(对我来说是foo.def)

然后我可以构建一个可运行的 .exe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多