我有一个最初在MFC
中作为.dll项目开发的项目,但我想将此项目转换为.exe应用程序。我已经更改了项目设置,如下所示,但它没有帮助。
修改:此外,我已将链接器属性更改为Project properties -> Linker -> General -> Output file .. set to .. .Debug\DirBkgndExt.exe
当我编译时,我得到以下错误。
我用Google搜索,在一些博客上,人们建议将所有内容从现有项目粘贴到可执行类型的新项目中。由于这个项目有点大,所以选项听起来不太好。
答案 0 :(得分:2)
使用应用程序向导创建新项目并将所有源文件移动到新项目中可能更简单。
问题在于向导会将一些属性表添加到项目中。并且当您更改项目类型时,它们可能不会切换。
在我的项目中,我可以在项目设置中看到一个我无法影响的DLL的链接器选项/ DLL。检查链接器设置并查看命令行选项。
同时打开Property Manager并检查添加了哪些属性并替换它们。
但是再次说明:创建一个新的合适项目并将源文件移入/添加到它中更简单。
答案 1 :(得分:1)
你期望在这里发生什么? DLL没有入口点(它有,但不是独立应用程序的入口点),那么当exe运行时软件应该做什么?您需要提供一个“驱动程序”,它将启动您想要发生的任何事情。创建一个新的exe应用程序(win32或控制台?),将“bootstrapping”代码复制到现有应用程序中,然后执行初始化/参数解析等操作。
可能你应该进行单独的配置:一个构建为dll,一个构建为exe。然后使用宏来保留特定于每个构建的代码。这就是我为具有嵌入式测试/开发UI的库所做的。
答案 2 :(得分:0)
我认为我和你在一个非常相似的地方,除了我有相关#defines背后的代码,以便项目应该能够很容易地构建为.exe(如main()中)。
我翻转了您所做的相同设置,以及以下内容(在VS2012中):
在链接器中>输入,确保模块定义文件为空(对我来说,它说foo.def)
然后我可以构建一个可运行的.exe