• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

关于MFC CONSOLE程序

dasha 2002-05-11 10:20:27
在DOS模式下用cl /MT A.cpp编译基于MFC类库的程序,出现下列警告:

LINK : warning LNK4089: all references to "ADVAPI32.dll" discarded by /OPT:REF
LINK : warning LNK4089: all references to "SHELL32.dll" discarded by /OPT:REF
LINK : warning LNK4089: all references to "comdlg32.dll" discarded by /OPT:REF

得到的可执行程序有的可以正常执行,有的弹出下列错误对话框:

Mfccon发生错误(KERNET32.DLL).
Mfccon即将关闭.
如果仍有问题,请尝试重新启动计算机.

比如《深入浅出MFC》中有个程序MFCCON.exe,就是打印出费泊纳契数的那个程序,执行是
就会发生上叙错误,而下面的小程序:
//dasha.cpp
#include <afx.h>

int main()
{
HANDLE hFile = CreateFile(_T("FOO.DAT"),
GENERIC_WRITE, FILE_SHARE_READ,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

if (hFile == INVALID_HANDLE_VALUE)
printf(_T("Couldn't create the file!"));
else
{
CFile myFile((int)hFile);
static const char sz[] = "Hockey is best! ssdfsdfs\ndffsd\n";
myFile.Write(sz, lstrlen(sz));
myFile.Close();
}
return 0;
}

用cl /MT dasha.cpp编译后得到的dasha.exe又可以正常执行,这是什么原因?
...全文
14 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
寂寞漂泊 2002-05-11
我试了一下也是这样的警告,不过在VC IDE里下没有
你也可以这样试一下,cl -c /MT dasha.cpp-》dasha.obj
然后link /OPT:NOREF dasha.obj就不会有警告了
回复
寂寞漂泊 2002-05-11
肯定不是LIB路径的问题
MSDN上:
The linker discarded all packaged functions that referenced exports in dynamic-link library. As a result, dynamic-link library and its import library are unneeded.
回复
meteor_wr 2002-05-11
我试了,好像程序没有问题呀,你自己再试试看吧
回复
meteor_wr 2002-05-11
楼上说得对,有可能是你的Lib的路径设置的问题。
或者重装一下你的VC试试看,应该不会出现这样的问题的
回复
no1vcl 2002-05-11
你检查一下你的LIB的路径设置是不是在PATH中。
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-11 10:20
社区公告

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