CreatDLL.CPP
上传用户:hyb6888
上传日期:2016-01-24
资源大小:5186k
文件大小:3k
源码类别:

输入法编程

开发平台:

Visual C++

  1. // dll.cpp : Defines the entry point for the DLL application.
  2. //
  3. #include "stdafx.h"
  4. #include "windows.h"
  5. #include "windowsx.h"
  6. #include "stdio.h"
  7. #include "tool.h"
  8. #define HOOKLIBAPI _declspce(dllexport)
  9. #include "CreateLib.h"
  10. #include "libarryOut.h"
  11. #define MYLIBAPI extern "C"  __declspec(dllexport)
  12. libarryOut Mainloadlib;
  13. //输出全部代码
  14. MYLIBAPI BOOL outsource (char *Code,char *CodeSource,long base, long goldeNum, long goldeLen)
  15. {
  16.   libarryOut myloadlib;
  17.   int ret;
  18.  // MessageBox(0,CodeSource,0,0);
  19.   ret=myloadlib.loadChiLib(Code,base, goldeNum, goldeLen);//编码装入
  20.   if (ret==0)
  21.   myloadlib.Outsource(CodeSource);
  22.   return 0;
  23. }
  24. //采用指向指针的指针以便VB可以带出数据。
  25. MYLIBAPI BOOL  ChissToCode (char *MainCodeLibName,char *chiss,char **codess)
  26. {
  27. Mainloadlib.ChissToCode(MainCodeLibName,chiss,*codess);
  28.   return 0;
  29. }
  30. //由中文串到英文代码
  31. MYLIBAPI BOOL ChissToCodeC (char *MainCodeLibName,char *chiss,char *codess)
  32. {
  33. Mainloadlib.ChissToCode(MainCodeLibName,chiss,codess);
  34. return 0;
  35. }
  36. //输出主代码
  37. MYLIBAPI BOOL  OutsourceOne (char *Code,char *CodeSource,long base, long goldeNum, long goldeLen)
  38. {
  39.   libarryOut myloadlib;
  40.   int ret;
  41.  // MessageBox(0,CodeSource,0,0);
  42.   ret=myloadlib.loadChiLib(Code,base, goldeNum, goldeLen);//编码装入
  43.   if (ret==0)
  44.   myloadlib.OutsourceOne(CodeSource);
  45.   return 0;
  46. }
  47. //建立库
  48. MYLIBAPI BOOL creat(char *CodeSource,char *userdefine,char *ExCodeSource,char *Code,long base, long goldeNum, long goldeLen)
  49. {
  50.     CreateLib creat;
  51. libarryOut myloadlib;
  52. char ss[100];
  53.     //MessageBox(0,"start","creat",0);
  54. if(creat.CreatChiLib(CodeSource,userdefine,ExCodeSource,Code, base, goldeNum,  goldeLen)==0){
  55.   //下面的测试生成的代码
  56. if(myloadlib.loadChiLib(Code, base, goldeNum, goldeLen)==-1)
  57. return 0;
  58. strcpy(ss,myloadlib.EntoCh("aa"));//由代码获得
  59. if(strlen(ss))
  60.   MessageBox(0,ss,"ddga取词验证正确",0);
  61. else
  62. {
  63.   MessageBox(0,"错误原因有:n1、编码与汉字串之间无空格n2、编码长度大于4个n3、编码为空。","取词验证错误",0);
  64. }
  65. }
  66. return 0;
  67. }
  68. //下面的为不进行测试,0表示成功
  69. MYLIBAPI BOOL creatNotest(char *CodeSource,char *userdefine,char *ExCodeSource,char *Code,long base, long goldeNum, long goldeLen)
  70. {
  71.     CreateLib temcreat;
  72. int ret ;
  73.   //MessageBox(0,"creatNotest","start",0);
  74. if(temcreat.CreatChiLib(CodeSource,userdefine,ExCodeSource,Code, base, goldeNum,  goldeLen)==0)
  75.   ret= 0;
  76. else
  77. ret= 1;
  78. return ret;
  79. }
  80. //测试库
  81. MYLIBAPI long TestLib(char *Code,long base, long goldeNum, long goldeLen,char *enchar,long showmsg,char **retstr)
  82. {
  83. libarryOut myloadlib;
  84. char ss[1001]="";
  85.   //下面的测试生成的代码
  86. if(myloadlib.loadChiLib(Code, base, goldeNum, goldeLen)==-1)
  87. return 0;
  88. if(strlen(enchar)>0)
  89. strcpy(ss,myloadlib.EntoCh(enchar));//由代码获得
  90. ss[1000]=0;
  91.    // MessageBox(0,ss,"ss",0);
  92. strcpy(*retstr,ss);//由代码获得
  93. if(showmsg==1){
  94. if(strlen(ss))
  95.    MessageBox(0,ss,"取词验证正确",0);
  96. else
  97. {
  98.    MessageBox(0,"错误原因有:n1、编码与汉字串之间无空格n2、编码长度大于4个n3、编码为空。","取词验证错误",0);
  99. }
  100. }
  101. return 1;
  102. }
  103. //下面的为不进行测试,0表示成功
  104. MYLIBAPI long ToolTranChar(char *fileName,long num,char *cc,char *tranCh)
  105. {
  106.     tool lctool;
  107. lctool.TranChar(fileName,num,cc,tranCh);
  108. return 0;
  109. }