添加#define _UNICODE后编译出错

fenex 2002-12-19 04:31:25
错误信息如下:
error LNK2001: unresolved external symbol _WinMain@16

去掉#define _UNICODE后则没有问题。
...全文
80 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fenex 2002-12-20
  • 打赏
  • 举报
回复
使用ruihuahan(飞不起来的笨鸟)和he_qiancsdn(虚心求教)的方法后问题终于解决了,在此谢谢各位大侠的指点!
NowCan 2002-12-19
  • 打赏
  • 举报
回复
在你的程序里找到WinMain,改成wWinMain。
找不到的话再问高人吧。
he_qiancsdn 2002-12-19
  • 打赏
  • 举报
回复
一般是在安装VC时选择自定义安装,在其中选择要安装的库文件,选择Unicode Lib,因为Unicode 库不是默认的安装项,你也可以选择添加安装程序完成。只要注意不要把原来已安装的组件卸载就可以了。
hanwg 2002-12-19
  • 打赏
  • 举报
回复
把mfc的unicode版lib复制到lib目录,dll复制到system32
fenex 2002-12-19
  • 打赏
  • 举报
回复
应该如何安装?我只把mfc的unicode版lib拷了一下。
he_qiancsdn 2002-12-19
  • 打赏
  • 举报
回复
同一上面的观点,但还有个问题:你有没有安装VC对UNICODE的支持库?
ruihuahan 2002-12-19
  • 打赏
  • 举报
回复
在Project setting对话框的link页中,categary选“output”,
在“Entry-point Symble”框中,填入wWinMainCRTStartup。
yezhizi 2002-12-19
  • 打赏
  • 举报
回复
你是否在98系统下运行的
GNU libiconv-1.15和libintl-0.19.8.1,VS2017工程和 Makefile.mak 命令行编译文件 CSDN-tags: libiconv1.15 libintl-0.19.8.1 VS2017 SDK17134.12 声明: 最新版,修正了relocatable.c文件中GetModuleFileName函数的问题。在ANSI下,等同于:GetModuleFileNameA;Unicode下等同于:GetModuleFileNameW,如果你的程序出错,请检查。 代码为本人良心制作,虽然花费了一定的时间和精力,但不保证完全没有错误。如果您下载并使用了本代码,将其包含在您发布的应用中,给您带来了经济上,心理上,生活上的损失,本人不负有责任。 所有代码都基于官网进行修改,iconv的代码来源于libiconv-1.15的lib目录,intl的代码来源于gettext-runtime的intl目录。 intl需要iconv的支持,如果想单独编译不需要iconv的intl, 请自行修改intl目录下的config.h文件, /* Define if you have the iconv() function and it works. */ #define HAVE_ICONV 1 /* Define to 1 if you have the header file. */ #define HAVE_ICONV_H 1 为: /* Define if you have the iconv() function and it works. */ /* #undef HAVE_ICONV */ /* Define to 1 if you have the header file. */ /* #undef HAVE_ICONV_H */ 并修改VS工程中预处理器定义,删掉/DDEPENDS_ON_LIBICONV=1 VS的工程为VS2017的工程文件,使用VC141工具集,SDK10.0.17134.12,如果没有2017,也可以用Makefile.mak文件来编译。 或者你自己降低版本,我最初使用的最低版本是VC140_xp,SDK7.1A,也就是VS2015默认安装的兼容xp工具集,VS2015以下版本未测试。 nmake /f Makefile.mak [DLL] [DEBUG] 指定 DLL=1 编译dll版本,默认是lib版本,libiconv.lib , libintl.lib。 指定 DEBUG=1 编译debug版本,默认是release版本。 同理,如果intl不需要iconv,请修改上面的配置文件选项,并, 删掉Makefile.mak中/DDEPENDS_ON_LIBICONV=1 配置文件的制作,参考了以下几处,修改的大概原则是,能定义的全定义了,就这样: https://github.com/kahrl/gettext-msvc 这个地址提供了libiconv和libintl的VS工程和配置文件。 https://github.com/winlibs 为编译PHP而修改的libiconv和libintl源码。 附带的Cygwin目录中的工具 libiconv官方的制作文档,用cygwin配合VC,生成的配置文件。 一大堆的宏和函数搞得我头晕脑涨。所以配置文件如果有错误,也在所难免,所有修改的文件,如config.h,iconv.h,libintl.h都附带了原始文件。 如: 配置文件 原始文件 DLL原始文件 LIB原始文件 config.h config.h.in iconv.h iconv.h.build.in iconv.h.in localcharset.h localcharset.h.build.in localcharset.h.in libintl.h libgnuintl.in.h 欢迎同学们下载测试。有问题可以给我发邮件travel981cn@139.com
/** 名称: CESock类 功能: 多线程方式实现简单易用的套接字,使用TCP协议 阻塞方式. 最大发送数据字节数不宜超过1KB. 同时实现了客户端及服务器端功能,可接收及发送数据. 版本: v1.0.0 第一版本发布时间: 20100823 第一作者: Jef 第一作者电子邮箱: dungeonsnd@126.com 版权: 您可以免费修改及使用,但把本程序(及修改后)用于商业用途前请得到第一作者的许可。 版本修改记录: v1.0.0 20100823 第一版本 新建类,多线程阻塞套接字.在Windows XP下用VC++6.0编译运行正确. 未在Unicode下测试. 使用: 1. 调用这个类通常不用修改头文件中的宏,注意每次发送数据字节数不要超过1024. 2. 在接收数据的处实现消息WM_RECVDATA的响应函数. 在MFC中的头文件添加如下代码, afx_msg void OnRecvData(WPARAM wParam,LPARAM lParam); 在MFC中的实现文件添加如下代码, ON_MESSAGE(WM_RECVDATA,OnRecvData) void CCommunicationView::OnRecvData(WPARAM wParam,LPARAM lParam) { CString str=(char*)lParam; //接收到的消息. CString strFrom=(char*)wParam; //发送消息的IP地址. ...... } 3. 调试时保留 #define SHOW_ERROR_MSGBOX,如果运行时出错将弹出对话框. 注释掉此行时如果出错将不做处理. 建议发布软件时(即Release版)注释此行代码. 4. 建议不要在函数内部定义CESock类型变量. 5. 建议此模块作为底层通信,上层应实现传输协议,如大文件分段传输、发送及反馈消息。 **/

16,548

社区成员

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

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

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