① 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