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

📄 conv_loaddll.cpp

📁 This software performs code conversion of Chinese characters, including GB2312/GBK and BIG5. It a
💻 CPP
字号:
// conv_loaddll.cpp

#include <windows.h>
#include "msc.h"
#include "filename.h"

#define CONV_LOAD_GLOBAL(type,name)       extern type name ; type name = (type) 0
// C++ 偱偼 const 偼僨僼僅儖僩偱偼撪晹寢崌偵側傞偺偱丄extern 偱偺愰尵傕昁梫

#include "conv_loaddll.h"



#define MAX_DLL_PATH    ( MAX_PATH * 2 )



// hInstance 偲摨偠僨傿儗僋僩儕偐傜 DLL 傪儘乕僪偡傞
// DLL 偺僴儞僪儖傪曉偡
HINSTANCE LoadDllA ( HINSTANCE hInstance, const char *szDllName ) {

   char szFileName [ MAX_DLL_PATH ] ;
   GetModuleFileNameA ( hInstance, szFileName, MAX_PATH ) ;
   ChangeFileNameA ( szFileName, szDllName ) ;

   return LoadLibraryA ( szFileName ) ;
}



// hInstance 偲摨偠僨傿儗僋僩儕偐傜 DLL 傪儘乕僪偡傞
// DLL 偺僴儞僪儖傪曉偡
HINSTANCE LoadDllW ( HINSTANCE hInstance, const wchar_t *szDllName ) {

   wchar_t szFileName [ MAX_DLL_PATH ] ;
   GetModuleFileNameW ( hInstance, szFileName, MAX_PATH ) ;
   ChangeFileNameW ( szFileName, szDllName ) ;

   return LoadLibraryW ( szFileName ) ;
}



////////////////////////////////////////
//          RTFCONV.EXE/COM           //
////////////////////////////////////////
#if defined RTFCONV_EXE || defined RTFCONV_COM



// DLL 傪儘乕僪
// 僄儔乕偑婲偒偨傜 0 埲奜傪曉偡
int LoadRtfconvDll ( void ) {

   if ( ! hRtfconv ) {
      if ( IsNT () ) hRtfconv = LoadDllW ( NULL, L"rtfconv.dll" ) ;
      else           hRtfconv = LoadDllA ( NULL,  "rtfconv.dll" ) ;
   }

   if ( GETPROCADDRESS ( hRtfconv, RTFCONVEXA, RtfconvExA ) ) return 1 ;
   if ( GETPROCADDRESS ( hRtfconv, RTFCONVEXW, RtfconvExW ) ) return 1 ;
   if ( GETPROCADDRESS ( hRtfconv, ABORTRTFCONV, AbortRtfconv ) ) return 1 ;
#ifdef RTFCONV_COM
   if ( GETPROCADDRESS ( hRtfconv, GETDLLVERSION, GetDllVersion ) ) return 1 ;
#endif

   return 0 ;
}



#endif // end of #if defined RTFCONV_EXE || defined RTFCONV_COM



////////////////////////////////////////
//          CHNCONV.EXE/COM           //
////////////////////////////////////////
#if defined CHNCONV_EXE || defined CHNCONV_COM



// DLL 傪儘乕僪
// 僄儔乕偑婲偒偨傜 0 埲奜傪曉偡
int LoadChnconvDll ( void ) {

   if ( ! hChnconv ) {
      if ( IsNT () ) hChnconv = LoadDllW ( NULL, L"chnconv.dll" ) ;
      else           hChnconv = LoadDllA ( NULL,  "chnconv.dll" ) ;
   }

   if ( GETPROCADDRESS ( hChnconv, CHNCONVEXA, ChnconvExA ) ) return 1 ;
   if ( GETPROCADDRESS ( hChnconv, CHNCONVEXW, ChnconvExW ) ) return 1 ;
   if ( GETPROCADDRESS ( hChnconv, ABORTCHNCONV, AbortChnconv ) ) return 1 ;
   if ( GETPROCADDRESS ( hChnconv, GETDLLVERSION, GetDllVersion ) ) return 1 ;

   return 0 ;
}



#endif // end of #if defined CHNCONV_EXE || defined CHNCONV_COM

⌨️ 快捷键说明

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