一个小问题

ebeyondboy 2009-03-22 09:04:47
新建了一个 MFC AppWizard (exe) 单窗口的,链接运行出现窗口
关闭后重新打开,怎么链接出错啊?
vc6.0下:

LINK : warning LNK4098: defaultlib "mfc42d.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib "mfcs42d.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib "msvcrtd.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
LINK : warning LNK4098: defaultlib "mfco42d.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/MainFrm.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
...全文
230 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2009-03-22
  • 打赏
  • 举报
回复
你应该打开dsw文件而不是单独的cpp文件。
ebeyondboy 2009-03-22
  • 打赏
  • 举报
回复
代码没动啊
进行调试,在if (!pThread->InitInstance())处停止,弹出对话框:
Unhandled exception in MainFrm.exe:0xC0000005:Access Viloation.
xylicon 2009-03-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ebeyondboy 的回复:]
1.Project Options中将/subsystem:console改成/subsystem:windows
2.选择Debug multithreaded
后,compile 和 build 正确,但运行时弹出对话框MainFrm.exe - 应用程序错误
内存不能为"read".
[/Quote]

应该是代码里的问题。
ebeyondboy 2009-03-22
  • 打赏
  • 举报
回复
1.Project Options中将/subsystem:console改成/subsystem:windows
2.选择Debug multithreaded
后,compile 和 build 正确,但运行时弹出对话框MainFrm.exe - 应用程序错误
内存不能为"read".
ebeyondboy 2009-03-22
  • 打赏
  • 举报
回复
我新建的是MFC AppWizard (exe),单文档的
ebeyondboy 2009-03-22
  • 打赏
  • 举报
回复
不管选择哪个,都弹出对话框MainFrm.exe - 应用程序错误
内存不能为"read".
xylicon 2009-03-22
  • 打赏
  • 举报
回复
就是你编译的版本,如果你不知道,那就应该是Debug版本吧,那就选择Debug multithreaded 或者 Debug multithreaded dll 看看吧。
ebeyondboy 2009-03-22
  • 打赏
  • 举报
回复
什么是Debug版本?
什么是Release版本啊?

xylicon 2009-03-22
  • 打赏
  • 举报
回复
首先,如果是unresolved external symbol _main
你必须按照,
[Project] --> [Settings] --> 选择"Link"属性页,在Project Options中将/subsystem:console改成/subsystem:windows。

如果是__endthreadex 等问题,就是多线程的问题,如果是Debug版本就在code generation中选择Debug multithreaded,如果是Release版本就用multithreaded。
ebeyondboy 2009-03-22
  • 打赏
  • 举报
回复
按照这样做之后,出现:
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/MainFrm.exe : fatal error LNK1120: 1 unresolved externals
xylicon 2009-03-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ebeyondboy 的回复:]

改成/subsystem:windows的时候:

nafxcwd.lib(thrdcore.obj) : er…
[/Quote]

晕这是另一个问题了。

project settings dialog
c/C++tab
category:code generation
use run-time library : select debug multithreaded or some other multithreaded library.
jieleiping 2009-03-22
  • 打赏
  • 举报
回复
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main和Debug/example.exe : fatal error LNK1120: 1 unresolved externals错误。

你建立的是win32窗口程序工程,你应该建立一个win32 console(控制台)工程。

或者是你建立的是win32 console(控制台)工程,你应该建立一个win32窗口程序工程。
ebeyondboy 2009-03-22
  • 打赏
  • 举报
回复
rebuld的时候:

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/MainFrm.exe : fatal error LNK1120: 3 unresolved externals

改成/subsystem:windows的时候:

nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/MainFrm.exe : fatal error LNK1120: 2 unresolved externals
xylicon 2009-03-22
  • 打赏
  • 举报
回复
Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: [Project] --> [Settings] --> 选择"Link"属性页,在Project Options中将/subsystem:console改成/subsystem:windows
hust_terry 2009-03-22
  • 打赏
  • 举报
回复
rebuild
luckyboy101 2009-03-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xylicon 的回复:]
首先,如果是unresolved external symbol _main
你必须按照,
[Project] --> [Settings] --> 选择"Link"属性页,在Project Options中将/subsystem:console改成/subsystem:windows。

如果是__endthreadex 等问题,就是多线程的问题,如果是Debug版本就在code generation中选择Debug multithreaded,如果是Release版本就用multithreaded。
[/Quote]
再不行就重装软件吧,呵呵

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧