VC编程实现软件多语言功能

合集下载

C语言VC6.0中文版上机操作指导

C语言VC6.0中文版上机操作指导

C语言上机操作指导程序设计是实践性很强的过程,任何程序最终都必须在计算机上运行,以检验程序的正确与否。

因此在学习程序设计中,一定要重视上机实践环节,通过上机可以加深理解C语言的有关概念,以巩固理论知识,另一方面也可以培养程序调试的能力与技巧。

1.C语言程序的上机步骤按照C语言语法规则而编写的C程序称为源程序。

源程序由字母、数字及其它符号等构成,在计算机内部用相应的ASCII码表示,并保存在扩展名为“.C”的文件中。

源程序是无法直接被计算机运行的,因为计算机的CPU只能执行二进制的机器指令。

这就需要把ASCII 码的源程序先翻译成机器指令,然后计算机的CPU才能运行翻译好的程序。

源程序翻译过程由两个步骤实现:编译与连接。

首先对源程序进行编译处理,即把每一条语句用若干条机器指令来实现,以生成由机器指令组成的目标程序。

但目标程序还不能马上交计算机直接运行,因为在源程序中,输入、输出以及常用函数运算并不是用户自己编写的,而直接调用系统函数库中的库函数。

因此,必须把“库函数”的处理过程连接到经编译生成的目标程序中,生成可执行程序,并经机器指令的地址重定位,便可由计算机运行,最终得到结果。

C语言程序的调试、运行步骤可以用图A-1表示:图A-1C语言程序的调试、运行步骤图A-1中,虚线表示当某一步骤出现错误时的修改路线。

运行时,无论是出现编译错误、连接错误,还是运行结果不对(源程序中有语法错误或逻辑错误),都需要修改源程序,并对它重新编译、连接和运行,直至将程序调试正确为止。

除了较简单的情况,一般的程序很难一次就能做到完全正确。

在上机过程中,根据出错现象找出错误并改正称为程序调试。

我们要在学习程序设计过程中,逐步培养调试程序的能力,它不可能靠几句话讲清楚,要靠自己在上机中不断摸索总结,它可以说是一种经验积累。

程序中的错误大致可分为三类:程序编译时检查出来的语法错误;连接时出现的错误;程序执行过程中的错误。

编译错误通常是编程者违反了C语言的语法规则,如保留字输入错误、大括号不匹配、语句少分号等等。

02-《高级语言程序设计(C)》C语言概述

02-《高级语言程序设计(C)》C语言概述
Ø与前一种写法意思一样,括 号内的void可以省略
Copyright © 2000-2013 王灿辉. All Rights Reserved.
C 语言程序最简单实例 int main() { //很多人这么用,不好! } //省略语句return 0;
Ø 编译程序会给出下述警告-----warning
Copyright © 2000-2013 王灿辉. All Rights Reserved.
C 语言程序最简单实例
int main(int argc,char *argv[]) { return 0; }
Ø 这种程序框架也非常常用,但要等 学习指针后才能理解其含义!这种 框架可以接受操作系统(OS)传给 该程序的参数。
Copyright © 2000-2013 王灿辉. All Rights Reserved.
C 语言:保留字
Ø 注意:main、include、define等, 以及printf、scanf等函数并不是保留 字。它们一般被称为预定义标识符。 Ø 包含大写字母的单词也一定不是保留 字,如:Int、SHORT等。 Ø 更不能想当然地认为integer、real等 是保留字。 Ø 自己抄写一遍C的保留字!
Copyright © 2000-2013 王灿辉. All Rights Reserved.
C 语言程序实例
#define PI 3.1415927 //C惯例,常量用大写字母! /*常量定义,使得常量的意义明确,易维护, 程序中不能改变常量的值,不能用;结束*/ #include <stdio.h> void main() { //计算圆的面积 float r,s; //变量定义,程序中用到的每个变量都必须先定义才能使用 r=2.0f; /*赋值语句,每个语句均用;结束*/ /*输出圆的面积*/ s=PI*r*r; //赋值语句,有计算功能,每个语句均用;结束 printf("area is : %f\n",s); }

程序设计语言VC++与DAO的应用

程序设计语言VC++与DAO的应用

(一)程序设计语言VC++与DAO的应用Visual C++6是微软公司推出的支持32位操作系统的开发工具,它提供了对Microsoft 最新技术的集成,提供了一个可视化的 C++ 编程模式,是Windows平台上的理想开发工具。

与其它工具相比,它具有以下特点。

1.Microsoft Visual C++是与系统紧密联系在一起的。

对于Windows系统支持的功能如消息机制等,在Visual C++6中都可以找到原型。

2.提供一个更为强大的MFC编程接口。

它提供了文档与视图、线程与进程、多任务同步、数据库支持、网络支持及Internet支持3.提供了一个可视化、一致的用户界面。

DAO(数据直接访问)是Microsoft继ODBC之后提供的另一个编程接口。

DAO提供了一个基本框架来创建和操纵数据库。

数据的DAO具有一个层次的对象结构,它使用Microsoft Jet Database 来实现对数据的访问。

它支持的数据类型有Microsoft Jet Database,即MDB 数据库。

ODBC源数据需要ODBC的相应的驱动器,可安装的ISAM数据库,如dBase、Microsoft Foxpro等。

1)DAO主要有以下几个优点。

○1独立性更强。

在ODBC中,ODBC的应用需要很多部件的支持,如ODBC的相应的驱动器等。

比方说,你用VC开发了一个ODBC的应用,经编译连接后,在你的系统上可以运行。

当移动到另一个系统上时,你需要搬动很多的部件,并要对ODBC进行注册,否则你的应用还是不能正常运行。

DAO在这个方面,具有更强的独立性。

如果你的数据库应用是基于Microsoft Jet Database的,你甚至可以完全实现应用的独立性。

另外,ODBC需要别的数据库软件来为它创建一个数据库模板。

○2数据操纵功能更强。

ODBC只支持数据操纵语言DML功能,只能进行一些数据的查询等工作。

其主要功能是基于记录级的,如查询、增加删除记录等。

多媒体编程基础_03_第二章 VC++2010编程基础

多媒体编程基础_03_第二章 VC++2010编程基础

• 对于语言使用大字符集的市场所使用的平台,代替 Unicode 的最佳方法 是 MBCS。MFC 通过使用可国际化的数据类型和 C 运行时函数来支 持 MBCS。
• 在 MBCS 下,字符被编码为单字节或双字节。在双字节字符中,第一个 字节(即前导字节)表示它和下一个字节将被解释为一个字符。第一个 字节来自留作前导字节的代码范围。哪个范围的字节可以用作前导字节 取决于所使用的代码页。例如,日文代码页 932 使用 0x81 到 0x9F 范围 内的字节作为前导字节,而朝鲜语代码页 949 则使用其他范围的字节。
• typedef unsigned short WORD; 16位短整数,可以表示0-65535之间的整数 而char是8位。 int和机器类型有关。如16位机,就表示16 位。32位机就表示32位
Visual C++的基本用法
Windows支持两种类型的应用程序: • 一种是基于控制台用户界面(Console User Interface,简 称CUI)的应用程序,即“MS-DOS”界面的应用程序,它 同样可以使用所有的Win32 API,甚至可以创建窗口进行 绘图。从这里开始有利于初学者抛开复杂的Windows界面 管理和消息循环,而去专心研究API函数的细节,了解常 用的内核对象。
关于句柄 • 句柄(HANDLE),资源的标识。
• 操作系统要管理和操作这些资源,都是通 过句柄来找到对应的资源。按资源的类型, 又可将句柄细分成图标句柄(HICON), 光标句柄(HCURSOR),窗口句柄 (HWND),应用程序实例句柄 (HINSTANCE)等等各种类型的句柄。操 作系统给每一个窗口指定的一个唯一的标 识号即窗口句柄。
了所有当前工程文件需要的MFCinclude文件。同时建立stdafx.cpp。

VC++中实现多国语言的切换有什么方法

VC++中实现多国语言的切换有什么方法

VC++中实现多国语言的切换有什么方法方法1:如果要切换,可以把资源都放到dll里,做一个简体的,比如XX0804.dll,繁体的XXX0404.dll,切换的时候用AfxSetResourceHandle选择不同的资源dll即可。

实现多语言有很多种办法, 例如楼上讲的将资源装入_DLL.你研究_MS_就会发现他也是这么做的.如何实现多语言版本程序实现多语言版本程序的一般方法是把要显示的文本以资源形式存在单独的动态链接库(DLL)中。

在这些动态链接库里,相同的文本其资源ID也相同。

这样,在运行时只要加载相应的DLL 即可,然后用LoadString API函数获取文本资源,例如:LPSTR szLang; // 此变量表示要使用的语言char szWindowTitle[256];wsprintf(szDll, "%s.dll", szLang);HMODULE hDll = LoadLibrary(szDll)LoadString(hDll, IDS_WINDOW_TITLE, szWindowTitle, sizof(szWindowTitle));通常会有多个DLLs文件,如:en.dll,cn.dll,jp.dll,fr.dll,it.dll等等,每一个语言拥有这样一个DLL支持文件。

如何去创建一个资源的实例Instance(我想问题的关键应该在这儿)然后用Load。

()去导入方法2:还有另外一种方法, 就是采用文本语言包.现在很多软件都是采用这种方式.由于在不同的语言环境下, 字体环境是不一样的, 也许你在简体中文环境下对话框看起来顺顺当当的,但切换到e文环境下,你会发现惨不忍睹.根据_MSDN的忠告, 对话框等资源的字体采用_MS_SCAN_SERIF, 9pt比较好.我说说文本语言包的实现.1.一个语言就是一个文本文件.其中最原始的是英语文本文件, 可以用这样的格式: Englisht.txt[lang]Infomation_=_English&File=&Edit=....而中文语言包文件可以这样写; Chinese.txt [lang]Infomation_=_Chinese&File=文件(&F)...&Edit=编辑(&E)对于要翻译的文件, 左边是原始文字,右边是翻译后的文字.2.程序启动时, 根据用户的选择定位到具体的语言包文件.以后每次需要显示文本时, 就从这个文件中读, 用读取_ini_文件的那个函数: GetPrivateProfileString获取字串.当然每次都这么调用, 比较麻烦, 你可以写一个类,将_SetWindowText, MessageBox等_重载一下. 这个类还可以做很多其他事情, 例如根据用户当前的语言设定特定的语言包, 例如可以随时更换语言而不必重启程序等等.当然你也可以不用类.3.要翻译的时候, 将这个文本文件直接发给翻译者就行了.这种实现文式的缺点:1.前期你要写一个简单但实用的类或API来封装一下.2.对于所有的文本, 采用的都是动态翻译,因此每个对话框都要调用_SetWindowText_重设文本, 增加程序开销.这种实现方式的优点:1.分发语言包比较方便2.翻译者翻译比较方便, 给他一个文本文件就行了.3.做多国语言包不必重新编译程序.4.一劳永逸.方法3:动态加载资源文件使用资源文件封装不同语言资源信息,包含字符串、图标等等,在应用程序运行时,载入资源就行。

使用VC++6.0编程

使用VC++6.0编程
使用VC++6.0编程
使用Microsoft Visual C++ 6.0
VC6是Microsoft Visual C++ 6.0版的简称 VC6是微软开发工具套装Visual Studio中的 C/C++开发工具 目前最新版本为MS Visual C++2008 使用VC6,意味着一个微软的C/C++编译 器,一个统一的Visual Studio开发环境,一 套Windows应用开发类库MFC以及相应的 Windows API程序库
VC6中常用的菜单和按钮 File Compile, Build, Rebuild All, Clean Build Start Debug, Execute Build Start Debug Go, Step Into
30
打开VC6的工程
前面我们的程序有一个 问题:我们自己的输出 hello world!与VC的输 出“press…”连接在一起 能否让他们放在不同的 行,看起来要更清晰明 显呢? 我们可以在输出后紧接着执 行一个令光标换行的动作 让我们来修改刚才的程序
2
使用Microsoft Visual C++ 6.0
VC6为大型C/C++程序开发而设计,这些 程序可能会含有多个头文件(.h、hpp)和 实现文件(c、cpp、cxx),因此VC6提供 了一套管理机制——工程(Project .dsp) 和工作环境配置(Workspace .dsw) 工程用于管理各个头文件,实现文件之间 的顺序关系,编译选项等
13
Files 文件名
C++ Source File 文件位置

VC++简介

VC++简介

VC++是微软公司开发的一个集成开发环境,换句话说,就是使用c++的一个开发平台.VC++是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性,并且还要掌握MFC、ATL、COM等的知识,难度比较大。

Windows下编程需要了解Windows的消息机制以及回调(callback)函数的原理;MFC是Win32API的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;COM是代码共享的二进制标准,需要掌握其基本原理等等。

VC是一个主流的开发平台,VC++不是一门语言,可以把C++看作为一种“工业标准”,而VC++则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。

VC++是在Windows平台下开发VC++应用程序,VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC 相对于WIN API开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WIN API的相关内容为主线。

首先VC是一个软件(IDE集成开发环境)(编译、编辑、调试)WindowsSDK(软件开发工具)VC的灵魂:MFC(微软基础类库)ATL(ActiveX模板类库)其他的SDK,如OpenGL,DirectX,ActiveMoive,DrawDib(WinG)VC需要掌握的东西:1、养成一种严谨的软件开发习惯,熟悉软件工程的基本原则。

2、C语言基础3、C++最基本内容:类、继承性、封装性、多态性的概念4、如何用向导建立一个程序框架5、设计菜单6、设计工具条7、设计和使用对话框,熟悉最常用的对话框控件:按钮、静态文本、编辑框等8、知道怎样新建类、成员函数、成员变量、消息处理函数。

9、了解最常用的Windows消息:如WM_PAINT(重绘窗口),鼠标按下、弹起、移动,初始化对话框等。

C语言程序设计项目化教程课件:C语言概述

C语言程序设计项目化教程课件:C语言概述

二、C语言的特点
3.C语言是一种结构化的程序设计语言 结构化语言的显著特点是程序与数据独立,
从而使程序更通用。这种结构化方式可使程序层 次清晰,便于调试、维护和使用。
4.C语言是一种模块化的程序设计语言 所谓模块化,是指将一个大的程序按功能分
割成一些模块,使每一个模块都成为功能单一、 结构清晰、容易理解的函数,适合大型软件的研 制和调试。
§1.1 C语言的发展及特点
为了改变这一状况,美国国家标准协会(ANSI) 根据C语言问世以来的各种版本对C语言进行 改进和扩充,制定了ANSI C标准,成为现行 的C语言标准。
目前,在微机上广泛使用的C语言编译系 统有Borland C++,Turbo C,Microsoft Visual C++(简称VC++6.0)等。
简易计算器项目概述
界面设计(略) 任务分解
第2章:任务一 项目中数据类型的定义 第3章:任务二 用输入/输出函数实现项目主菜
单的顺序执行 第4章:任务三 项目主菜单的选择执行设计 第5章:任务四 项目主菜单的循环执行设计
C语言概述
1.1 C语言的发展及特点 1.2 简单的C程序介绍 1.3 C程序的开发过程 1.4 VC++6.0集成开发环境 1.5 本章小结
本章主要介绍了C语言的发展和特点,C语 言程序的基本结构和书写规则,并且还详细介绍 了VC++6.0集成开发环境及程序运行过程。在学 习过程中,要重点掌握C语言程序的结构特点和 上机过程。
/*主函数*/
{
printf("Hello, world!\n"); /*输出信息*/
} 程序运行结果:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

resu lt = C In t ( In t (x 3 R nd () + 1) ) End If R etu rn resu lt
End Function
random 方法的形参 x 代表了奖池中奖号的数量, 该方法返回1~ x 中的任意一个平均分布随机整数。以 返回值为地址查找奖池链表, 得到对应的中奖号码。在 该方法中, R andom ize ( ) 函数以系统时间为种子初始 化随机数生成器, R nd () 函数返回 0~ 1 的平均分布小 数。 313 屏幕显示和音效
根据需求编写XM L 语言资源配置文件, 在V C + + 610 环境下对XM L 的编程, 获取配置项, 保存到变 量中, 然后用变量取代文字从而实现多语言功能。 115 使用数据库加载语言资源
建立相关数据库表, 录入不同语种的语言资源。在 V C+ + 工程中根据语言标志读取数据库表的语言资 源, 并赋给相应变量, 然后显示。 主要过程为打开数据 库连接, 根据语言标志读取表中的字符串, 关闭数据库 连接。
有两种方法来编译链接基于libxm l2 的程序, 第一 种是在V C 环境中设置 lib 和 include 路径, 并在 link 设 置中添加 libxm l21lib 和 iconv1lib; 第二种是用编译器 选项告诉编译器 cl1exe 头文件的位置, 并用链接器选 项 告 诉 链 接 器 link1exe 库 文 件 的 位 置, 同 时 在 w indow s 环境变量p a th 中添加 libxm l2 中 b in 文件夹 的位置, 以便于程序运行时可以找到 d ll (也可以将 d ll 拷贝到 system 32 目录下)。
if (L ang- flg = = 1) m - Cu rren tM enu1L oadM enu ( IDR - M ENU 1) ; 中文菜单
else m - Cu rren tM enu1L oadM enu ( IDR - M ENU 2) ; 英 文菜单
213 in i 文件方法 ① 根据需求编辑语言包 in i 文件
随着计算机技术的快速发展, 软件的交流越来越 频繁, 软件的国际化已成为一个软件开发人员不可回 避的问题。所谓软件的国际化, 就是在软件的设计和文 档开发过程中, 使得功能和代码设计能处理多种语言 和文化习俗, 能够在创建不同语言版本时, 不需要重新 设计源 代 码 的 软 件 工 程 方 法。软 件 界 面 支 持 多 种 语 言, 从而可以被很多国家的人使用, 达到资源共享 的目的。对于提供国际化解决方案的程序设计者而言, 根据用户地区设置来显示对应的语言界面, 将是非常 有意义的。
[Ch inese M enu ] BU T T - O K= 确定 BU T T - Cancel= 取消
[English M enu ] BU T T - O K= En ter BU T T - Cancel= Cancel
② 编写获取 in i 文件中词条的函数, 读取所有配 置的 ID、Cap t ion 条目到V ecto r 或者A rray 中, 还可以 读到变量结构体中: 如Pa raCT &CTN am e 定义结构 体变量。
为了使应用程序支持多种语言, 笔者参看了一些 多语言功能的资料, 都不够全面。最近在某项目的多语 言功能中通过实际的编程实现, 将多语言实现方法简 单总结一下。
1 软件多语言功能的几种实现思路
111 使用纯资源DLL 加载语言资源 使用纯资源DLL 的方法是将不同的语言资源放
入不同的动态库中, 根据需要程序加载不同的动态库, 从而实现软件的国际化。 这样开发者根据需求每增加 一种语言, 就要多做一个相应语言的动态库, 重复劳 动、工作量大而且这种方法实现起来不很方便, 对软件 开发人员要求较高, 不适宜初学者。 112 使用资源文件加载语言资源
END
对应的英文菜单为:
" IDR - English i - M A IN FRAM E M ENU PR ELOAD
D ISCA RDABL E "
B EG IN PO PU P "F ile (&F) "
B EG IN M ENU IT EM "N ew (&N ) tC trl+ N " , ID - F IL E- N EW …
【关键词】软件国际化, 多语言, XM L
中图分类号: T P312
文献标识码: A
ABSTRACT Softw a re in terna tiona liza tion is one of requ irem en ts of softw a re developm en t1 T he thesis firstly in troduces the ba sis
}
else {
A fxSetR esou rceH andle (m - h In stM enu ) ;
get
resou rces from the DLL
}
212 资源文件实现方法 ① 打开工程中的资源文档 (1rc 文档) , 找到菜单
文本, 将其复制一份并略作改动, 也可以直接在工程里 添加一个菜单资源, 将原菜单各项的翻译文本作为新 菜单各项, 新菜单项与原对应菜单项的 ID 号一致。
② 在V C+ + 工程中建立XM L 编程环境: 下载并 安 装 XM L 库, 如 libxm l2 和 iconv 库。 正确安 装 了 libxm l2 和 iconv 库, 包括头文件、lib 文件和 d ll 文件。 注意头文件主要是 libxm l2 和 iconv 的头文件, lib 文件 就是两个 libxm l21lib 和 iconv1lib, 而 d ll 有三个, 即 libxm l21d ll、iconv1d ll 和 zlib11d ll。
使用不同的资源文件, 在同一个工程中建立不同 的语言资源文件, 程序通过加载不同的资源来实现多
语言。这种方法比较简便、适用于静态菜单的多语言显 示, 但是当菜单的词条需要改变时, 资源文件就需要改 变, 程序必须重新编译。 而且不适用于界面的实现。 113 使用 in i 文件加载语言资源
使用in i 文件加载语言资源实现多语言功能。工程 中所有的文字先写入 in i 文件中, 再从中读取, 保存到 变量中, 在程序中以变量取代文字来实现多语言功能。 114 使用 XML 文件加载语言资源
genera l idea and m ean ing of softw a re in terna tion1 In terna tiona lized softw a re requests softw a re ha s m u lti2language
function1Secondly, the thesis dem on stra tes m ethods to relize softw a re m u lti2language1T ha t m ean s loading m u lti2language resou rce
③ 修改主工程: 根语言标志在没有任何资源的主 工程加载语言资源DLL 文件。
④ 在主应用程序类的1h 文件中定义p ro tected 的 H IN STAN CE 类型变量 (如: m h In stM enu)。
⑤ 在主应用程序类的 1cpp 文件: : In it In stance () 函数过程中添加下面代码:
·26· (总 958)
V C 编程实现软件多语言功能
2009 年
文章编号: 100325850 (2009) 1220026203
VC 编程实现软件多语言功能
Sof tware M ulti-Language Function Rea l ized by VC Progamm ing
邸江芬 李晓婷 吴 琼
(北方自动控制技术研究所 太原 030006)
【摘 要】软件国际化是当今软件开发的需求之一。首先介绍了软件国际化的基本概念及意义, 国际化软件要求
软件支持多语言功能。 其次介绍软件多语言的实现方法, 即通过不同的方式加载语言资源从而实现软件多语言
显示, 软件多语言功能实现的思路和方法步骤, 并以具体实例给以说明。 最后对这几种方法进行了比较。
③ 在程序中编写加载词条的函数: 将变量替换文 字。 或者遍历指定窗口中所有组件时, 每发现一个组 件, 就用其 ID 在已经加载的语言包数组中查找, 找到 就用配置的值修改组件Cap tion 属性; 找不到, 就认为 是不需要动态配置, 不做处理。 214 XML 文件存储语言包方法
① 根据XM L 文件的语法规则编写Xm l 的配置文 件。
2 软件多语言功能实现的方法步骤介绍
以V C + + 610 为开发环境, 各种方法的实现步骤 如下。 211 纯资源DLL 实现方法
① 创建主工程: 把V C 框架自动创建的 1rc, 1rc2, 1ico , 1bm p 等文件从程序框架中删除。
② 创建资源DLL : 把主工程中创建的 1rc, 1rc2, 1ico , 1bm p 等文件加入到该资源DLL 工程文件中; 在
m h In stM enu = : : L oadL ib ra ry ( " M enu1dll " ) ; ? M enu1dll 为多语言纯资源的 dll 文件
if (m h In stM enu = = NU LL ) ?
{ retu rn FAL SE; fa iled to load the loca lized resou rces
in deferen t style to rea lize softw a re m u lti2language function1 It a lso exp la in s tha t the though t and m ethod of softw a re m u lti2
相关文档
最新文档