① VC 简单加密!
#include <stdio.h>
#include <string.h>void main()
{
char a[50] = "加密~!中英文都要支持!越简单越好!";//原文
char b[50];
char key[5] = "abcd\0";//密钥
int i, j; printf("原文:%s\n\n", a);
printf("密钥:%s\n\n", key); for (i = 0; i < strlen(a); i ++)
{
for (j = 0; j < 4; j ++)
{
b[i] = a[i] ^ key[j];//将每一个原文字符跟密钥字符异或
}
}
b[i] = 0;//结束字符串
printf("加密后:%s\n\n", b); for (i = 0; i < strlen(a); i ++)
{
for (j = 3; j >= 0; j --)
{
b[i] = b[i] ^ key[j];
}
}
printf("解密后:%s\n\n", a);
}
② 中英文切换 VC
mm=1无法控制编译过程,可以这样
在语句#ifdef EN (注意不是你写的#if defined EN,要用#ifdef EN )
之前加上
#define EN
这样就用英文了,如果把这行注释掉(//#define EN)就用中文了
补充:
通过mm的值来编译某段宏定义是不可以的,因为宏定义部分在编译时就完成了,而声明一个变量要在代码执行时才生效的,所以不可以。
如果想通过变量来控制切换不同的语言,那么就不能用宏定义的方式来切换,也要用代码的方式切换,如:
if(mm==1)
{
//使用中文
}
else
{
//使用EN
}
③ VC中,怎么在软件中实现中英文版本的切换
VC中实现多语菜单非常容易,下面以英汉对照菜单为例说明多语菜单实现的方法。
一、建立工程项目文件
选择语言为中文,其余采用默认,添加中英文切换菜单IDD_MENU_CHANGE
二、用文本形式打开资源文件,找到IDR_MAINFRAME的菜单文本内容如下:
view sourceprint?
01.IDR_MAINFRAME MENU PRELOAD DISCARDABLE
02.BEGIN
03. POPUP "文件(&F)"
04. BEGIN
05. MENUITEM "新建(&N)\tCtrl+N", ID_FILE_NEW
06. MENUITEM "打开(&O)...\tCtrl+O", ID_FILE_OPEN
07. MENUITEM "保存(&S)\tCtrl+S", ID_FILE_SAVE
08. MENUITEM "另存为(&A)...", ID_FILE_SAVE_AS
09. MENUITEM SEPARATOR
10. MENUITEM "打印(&P)...\tCtrl+P", ID_FILE_PRINT
11. MENUITEM "打印预览(&V)", ID_FILE_PRINT_PREVIEW
12. MENUITEM "打印设置(&R)...", ID_FILE_PRINT_SETUP
13. MENUITEM SEPARATOR
14. MENUITEM "最近文件", ID_FILE_MRU_FILE1, GRAYED
15. MENUITEM SEPARATOR
16. MENUITEM "退出(&X)", ID_APP_EXIT
17. END
18. POPUP "编辑(&E)"
19. BEGIN
20. MENUITEM "撤消(&U)\tCtrl+Z", ID_EDIT_UNDO
21. MENUITEM SEPARATOR
22. MENUITEM "剪切(&T)\tCtrl+X", ID_EDIT_CUT
23. MENUITEM "复制(&C)\tCtrl+C", ID_EDIT_COPY
24. MENUITEM "粘贴(&P)\tCtrl+V", ID_EDIT_PASTE
25. END
26. POPUP "查看(&V)"
27. BEGIN
28. MENUITEM "工具栏(&T)", ID_VIEW_TOOLBAR
29. MENUITEM "状态栏(&S)", ID_VIEW_STATUS_BAR
30. MENUITEM "弹出CD", ID_VIEW_FULLSCREEN
31. MENUITEM "英文", ID_MENU_CHANGE
32. END
33. POPUP "帮助(&H)"
34. BEGIN
35. MENUITEM "关于 FullScreen(&A)...", ID_APP_ABOUT
36. END
37.END
在此后加入英文菜单资源复制上述文本,把其中的中文改成英文,并作些改动
view sourceprint?
01.IDR_MAINFRAME_ENGLISH MENU PRELOAD DISCARDABLE
02.BEGIN
03. POPUP "File(&F)"
04. BEGIN
05. MENUITEM "New(&N)\tCtrl+N", ID_FILE_NEW
06. MENUITEM "Open(&O)...\tCtrl+O", ID_FILE_OPEN
07. MENUITEM "Save(&S)\tCtrl+S", ID_FILE_SAVE
08. MENUITEM "Save as(&A)...", ID_FILE_SAVE_AS
09. MENUITEM SEPARATOR
10. MENUITEM "Print(&P)...\tCtrl+P", ID_FILE_PRINT
11. MENUITEM "Print Preview(&V)", ID_FILE_PRINT_PREVIEW
12. MENUITEM "Print Setting(&R)...", ID_FILE_PRINT_SETUP
13. MENUITEM SEPARATOR
14. MENUITEM "Recent Files", ID_FILE_MRU_FILE1, GRAYED
15. MENUITEM SEPARATOR
16. MENUITEM "Exit(&X)", ID_APP_EXIT
17. END
18. POPUP "Edit(&E)"
19. BEGIN
20. MENUITEM "Undo(&U)\tCtrl+Z", ID_EDIT_UNDO
21. MENUITEM SEPARATOR
22. MENUITEM "Cut(&T)\tCtrl+X", ID_EDIT_CUT
23. MENUITEM "Copy(&C)\tCtrl+C", ID_EDIT_COPY
24. MENUITEM "Paste(&P)\tCtrl+V", ID_EDIT_PASTE
25. END
26. POPUP "View(&V)"
27. BEGIN
28. MENUITEM "ToolBar(&T)", ID_VIEW_TOOLBAR
29. MENUITEM "StatusBar(&S)", ID_VIEW_STATUS_BAR
30. MENUITEM "Eject CD", ID_VIEW_FULLSCREEN
31. MENUITEM "Chinese", ID_MENU_CHANGE
32. END
33. POPUP "Help(&H)"
34. BEGIN
35. MENUITEM "About FullScreen(&A)...", ID_APP_ABOUT
36. END
37.END
修改完成后保存资源。
三、在 CMainFrame中加入变量CMenu m_englistmenu 和m_chinesemenu保存中英文菜单资源
加入变量enum Enum{e,c}m_current 保存当前菜单
四、由于默认为中文菜单在 CMainFrame::CMainFrame()中设置m_current=c;表示当前为中文菜单,在CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中装入英文菜单资源
view sourceprint?
1.m_englistmenu.LoadMenu("IDR_MAINFRAME_ENGLISH");
2.HMENU m_hMenu=::GetMenu(this->m_hWnd); // 保存中文菜单
3.m_chinesemenu.Attach(m_hMenu);
五、加入菜单函数
view sourceprint?
01.void CMainFrame::OnMenuChange()
02.{
03. if(m_current==e)
04. {
05. SetMenu(&m_chinesemenu);
06. m_current=c;
07. }
08. else
09. {
10. SetMenu(&m_englistmenu);
11. m_current=e;
12. }
13.
14.}
编译运行程序您就可以获得一个具有英汉对照菜单的应用程序。
参考http://www.vckbase.com/index.php/wv/370