VC6.0下设置Unicode编译环境

在VC6.0下设置Unicode编译环境 在VC6.0下设置Unicode编译环境,很详细,很实用 立即下载
VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。
  使用VC++ 6.0进行Unicode编程主要做以下几项工作:

1、为工程添加UNICODE和_UNICODE预处理选项。

  具体步骤:打开[工程]->[设置…]对话框,在C/C++标签对话框的“预处理程序定义”中去除_MBCS,加上_UNICODE,UNICODE。(注意中间用逗号隔开).

  在没有定义UNICODE和_UNICODE前,所有函数和类型都默认使用ANSI的版本;在定义了UNICODE和_UNICODE之后,所有的MFC类和Windows API都变成了宽字节版本了。

2、设置程序入口点

  因为MFC应用程序有针对Unicode专用的程序入口点,我们要设置entry point。否则就会出现连接错误。
  设置entry point的方法是:打开[工程]->[设置…]对话框,在Link页的Output类别的Entry Point里填上wWinMainCRTStartup。

3、使用ANSI/Unicode通用数据类型

  微软提供了一些ANSI和Unicode兼容的通用数据类型,我们最常用的数据类型有_T ,TCHAR,LPTSTR,LPCTSTR。
  顺便说一下,LPCTSTR和const TCHAR*是完全等同的。其中L表示long指针,这是为了兼容Windows 3.1等16位操作系统遗留下来的,在Win32 中以及其它的32位操作系统中,long指针和near指针及far修饰符都是为了兼容的作用,没有实际意义。P(pointer)表示这是一个指针;C (const)表示是一个常量;T(_T宏)表示兼容ANSI和Unicode,STR(string)表示这个变量是一个字符串。综上可以看出, LPCTSTR表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。比如:

TCHAR* szText=_T(“Hello!”);TCHAR szText[]=_T(“I Love You”);LPCTSTR lpszText=_T(“大家好!”);
使用函数中的参数最好也要有变化,比如:
MessageBox(_T(“你好”));

  其实,在上面的语句中,即使您不加_T宏,MessageBox函数也会自动把“你好”字符串进行强制转换。但我还是推荐您使用_T宏,以表示您有Unicode编码意识。

4、修改字符串运算问题

  一些字符串操作函数需要获取字符串的字符数(sizeof(szBuffer)/sizeof(TCHAR)),而另一些函数可能需要获取字符串的字节数sizeof(szBuffer)。您应该注意该问题并仔细分析字符串操作函数,以确定能够得到正确的结果。
ANSI操作函数以str开头,如strcpy(),strcat(),strlen();
Unicode操作函数以wcs开头,如wcscpy,wcscpy(),wcslen();
ANSI/Unicode操作函数以_tcs开头 _tcscpy(C运行期库);
ANSI/Unicode操作函数以lstr开头 lstrcpy(Windows函数);
考虑ANSI和Unicode的兼容,我们需要使用以_tcs开头或lstr开头的通用字符串操作函数。

六、举个Unicode编程的例子

第一步:
  打开VC++6.0,新建基于对话框的工程Unicode,主对话框IDD_UNICODE_DIALOG中加入一个按钮控件,双击该控件并添加该控件的响应函数:

void CUnicodeDlg::OnButtonUnicode() { TCHAR* str1=_T("ANSI和UNICODE编码试验"); m_disp=str1; UpdateData(FALSE);}
  添加静态文本框IDC_DISP,使用ClassWizard给该控件添加CString类型变量m_disp。使用默认ANSI编码环境编译该工程,生成Unicode.exe。

第二步:修改系统内码
  打开“控制面板”,单击“日期、时间、语言和区域设置”选项,在“日期、时间、语言和区域设置”窗口中继续单击“区域和语言选项”选项,弹出“区域和语言选项”对话框。在该对话框中,单击“高级”标签,将“非Unicode的程序的语言”选项改为“日语”,单击“应用”按钮,

弹出的对话框单击“是”,重新启动计算机使设置生效。
运行Unicode.exe程序并单击“Button1”按钮,看,静态文本框出现了乱码。

第三步:
  改为Unicode编码环境编译该工程,生成Unicode.exe。再次运行Unicode.exe程序并单击“Unicode”按钮。看到Unicode编码的优势了吧。

 

点击查看原文

保边滤波之Mean shift filter 保边滤波之Mean shift filter 目录 保边滤波之Mean shift filter 一、算法原理 二、练手实现的算法代码如下: 三、实现结果 一、算法原理 在OpenCV中,meanshift filter函数为 p... 阅读详情

相关推荐

CamoFox MCP:让AI助手隐身操作浏览器的反检测自动化实战

浏览器自动化是提升工作效率和实现数据采集的关键技术,其核心原理在于通过程序脚本模拟人类在网页上的交互行为。传统方案如Selenium或Playwright虽功能强大,但需要开发者编写复杂脚本并处理反爬机制。随着AI Agent技术的发展,自然语言驱动的自动化成为新趋势,它能将任务规划与逻辑判断交由AI处理,大幅降低使用门槛。Model Context Protocol(MCP)作为连接AI与外部工具的标准协议,在此场景下价值凸显,它使得AI助手能直接调用丰富的浏览器操作工具。CamoFox MCP创新性地将

weixin_42551967的博客 727

在VC6.0下设置Unicode编译环境 & VC6中调试状态下显示Unicode字符串

VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。   使用VC++ 6.0进行Unicode编程主要做以下几项工作: 1、为工程添加UNICODE和_UNICODE预处理选项。   具体步骤:打开[工程]->[设置…]对话框,在C/C++标签对话框的“预处理程序定义”中去除_MBCS,

xiliang_pan的专栏 4667

用R语言实现“中断时间序列分析” --- R code for ITS

ITS方法可用于评估一项干预措施的效果,从水平改变和斜率改变两个角度来描述干预引起的变化。

franksui的博客 4030

VC++6.0中编写Unicode编码的应用程序

VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。   使用VC++6.0进行Unicode编程主要做以下几项工作: 1、为工程添加UNICODE和_UNICODE预处理选项。   具体步骤:打开[工程]->[设置…]对话框,如图1所示,在C/C++标签对话框的“预处理程序定义”中去除_MBC

a904003695的专栏 2466

树莓派4B安装 ubuntu20.04 & VNC远程桌面 & 安装ROS noetic

树莓派4B安装ubuntu20.04 & VNC远程桌面1、安装ubuntu方式1:下载Imager文件。方式2:下载镜像文件。2、查询树莓派 IP 地址3、使用ssh远程登录树莓派4、更新源地址5、更新6、安装桌面环境7、允许root登陆8、登陆远程桌面9、设置中文 1、安装ubuntu 方式1:下载Imager文件。...

weixin_44415639的博客 2万+

三相电机控制入门:端电压、相电压、线电压到底怎么测?(附实测波形对比)

本文为三相电机控制初学者提供了端电压、相电压和线电压的完整测量指南。通过厘清三者的物理定义与测量方法,详细讲解了如何搭建虚拟星形点电路,并对比分析了方波、SPWM和SVPWM三种主流控制模式下关键电压波形的核心特征与差异,帮助工程师掌握正确的示波器测量与波形解读技巧。

oauth7security的博客 655

用VC6.0制作unicode编码的dll

VC6.0默认编码格式是ANSI,在网上查到的设置成Unicode编码格式的方法分为两步:1. 将_MBCS宏改成_UNICODE,UNICODE2. 设置程序的入口点为wWinMainCRTStartup。于是在做unicode编码的dll时也采用上述方法,结果使用该动态库的Unicode程序一运行就自动退出。在网上查找终于找到原因:    如果.exe程序使用Unicode编码

冷秋魂的专栏 2518

Ubuntu本地部署CodeX编程助手:CLI配置全指南

本地AI编程助手是当前开发者关注的核心技术趋势,指在不依赖云端API、保障代码隐私前提下,于本地环境运行具备代码理解、多语言补全与知识库检索能力的智能辅助工具。其技术原理涉及模型加载、API网关编排、向量数据库集成及系统级资源调度,关键价值在于可控性、低延迟与合规性。典型应用场景包括企业内网DevOps提效、边缘设备嵌入式开发支持,以及敏感代码场景下的离线编程增强。本文聚焦Ubuntu系统下基于CLI的手动配置路径,深入解析Ollama服务注册、Node.js版本锁定、API Key环境隔离及Qwen2.5

weixin_26804345的博客 596

VC6.0设置UNICODE编码

第一,首先在 项目 -- > 属性 --->c/c++标签页面 --->预定义 添加_UNICODE  然后 [Project] --> [Settings] --> 选择"Link"属性页, 在Category中选择Output, 再在Entry-point symbol中填入wWinMainCRTStartup, 即可   参考资料

Safedebug的博客 5653

基于互联网的智能旧衣回收箱设计与实现

本文介绍了基于嵌入式系统的智能旧衣回收箱的设计与实现,涵盖了硬件设计、软件开发、图像识别、物联网连接等方面的内容。通过利用最新的技术,如图像识别、物联网和云计算,实现了智能、便捷的旧衣物回收系统。未来,随着技术的不断进步,智能回收系统将会在环保领域发挥更大的作用。

2201_76125393的博客 908

YOLOv11改进 | 主干/Backbone篇 | 轻量级移动端网络ShuffleNetV2(附代码+修改教程)

本文给大家带来的改进内容是ShuffleNetV2,这是一种为移动设备设计的高效CNN架构。其在ShuffleNetV1的基础上强调除了FLOPs之外,还应考虑速度、内存访问成本和平台特性。(我在YOLOv11n上修改该主干降低了GFLOPs,但是参数量还是有一定上涨,其非常适合轻量化的读者来使用,同时精度也有一定程度的上涨)。本文通过介绍其主要框架原理,然后教你如何添加该网络结构到网络模型中。

Snu77的博客 3388

文件字符编码导致的VC多字符乱码解决

现在好多的c++源代码都是兼容windows和linux的,由于linux多采用utf-8编码,且文件结尾多采用\n作为换行,而windows则采用本地操作系统编码存储源代码,这样从git上下载的源码在windows编译多字节时就容易出现乱码问题。 概括来说就是如果在多字节编码程序中有硬编码字符且文件采用utf-8编码存储的话,则会在多字节编译时会产生字符显示乱码。 原因就是输出的字符和当前程序字符集不一致导致的:程序编译多字节(即采用GB2312编码),而文件存储方式是utf-8编码,这样程序将会以gb2

急速光粒的博客 1135

[密码学实战]商密TLCP协议抓包解析与深度分析(二十九)

[密码学实战]商密TLCP协议抓包解析与深度分析(二十九)

曼岛_的博客 633
上一篇: vc++ 之ADO数据库编程
下一篇: 用netbeans开发android的配置
wula0010
博客等级 码龄22年 90粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值