⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.c

📁 经典的用于汉字内码比较的源码
💻 C
字号:
//=================================================
//   DEMO.C 
//   调用CHNSORT.DLL,测试两汉字串的笔划顺序
//=================================================
//本程序用 MSVC++1.52 和 MSVC++5.0 编译通过
//   包含DEMO.DEF ,DEMO.H, DEMO.RC  
//   在 MSVC++1.52 下创建工程文件选 Windows Application(.EXE) 类型
//   在 MSVC++5.0  下创建工程文件选 Win32 Application(.EXE)  类型
//
#include <WINDOWS.H>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "demo.h"

char lpText1[72];
char lpText2[72];
HANDLE hInst;

// 取得两个汉字串的对话框说明
BOOL GetText(HWND hWnd);
BOOL FAR PASCAL GetTextDlgProc(HWND hDlg,UINT message,WORD wParam,LONG lParam);

// 按笔划顺序比较字符串
// 动态库中的函数说明
int _export FAR PASCAL ChnStrComp(LPSTR lpStr1,LPSTR lpStr2);

int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{      
  int nRet;
  char lpInfor[256];
  char lpComp[16];
  
  hInst=hInstance;
  
  if ( !GetText(NULL) )
    return 0;

// 比较两个汉字串 
  nRet=ChnStrComp(lpText1,lpText2);

// 根据比较结果,将结论写入一个字符串中
  if ( nRet<0 )
    strcpy(lpComp," 先于 ");
  else if ( nRet==0 )
     strcpy(lpComp," 等于 ");
   else
     strcpy(lpComp," 后于 ");
    
// 形成结论并显示出来 
  lstrcpy(lpInfor,lpText1);
  lstrcat(lpInfor,lpComp);
  lstrcat(lpInfor,lpText2);
  MessageBox(NULL,lpInfor,"汉字笔划顺序比较结果",MB_OK);
  
  return 1;
}

BOOL GetText(HWND hWnd)
{
  FARPROC lpProc;
  BOOL    bReturn;
                            
  lpProc = MakeProcInstance(GetTextDlgProc, hInst);
  bReturn=DialogBox(hInst,       
            MAKEINTRESOURCE(SEARCHBOX), 
            hWnd,                      
            lpProc);               
  FreeProcInstance(lpProc);
  
  return bReturn;
}                        

BOOL FAR PASCAL GetTextDlgProc(HWND hDlg,UINT message,WORD wParam,LONG lParam)
{
   
   switch(message)
   {
   case WM_INITDIALOG: 
     SetDlgItemText(hDlg,IDE_TEXT1,lpText1);
     SetDlgItemText(hDlg,IDE_TEXT2,lpText2);
     return TRUE;

   case WM_COMMAND:
     switch (wParam)
     {
     case IDOK:                                         
      GetDlgItemText(hDlg,IDE_TEXT1,lpText1,72);
      GetDlgItemText(hDlg,IDE_TEXT2,lpText2,72);
      EndDialog(hDlg,TRUE);
      return (TRUE);

     case IDCANCEL:
     EndDialog(hDlg,FALSE);
     return TRUE;
     }
   break;
   default:
   return NULL;
   }
   return NULL;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -