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

📄 convert.c

📁 wince 用的注册表编辑器源代码。可以看和编辑wince 注册表
💻 C
字号:
#define	STRICT
#include	<windows.h>
#include	"convert.h"

HINSTANCE	hKctrlDll = 0 ;
extern	DWORD	DllVersion ;
BOOL	(*InitKanjiControls)( void ) ;
void	(*ReleaseKanjiControls)( void ) ;
void	(*unicode2sjis)( LPCTSTR src, BYTE *dst, DWORD max ) ;
void	(*sjis2unicode)( const BYTE *src, LPTSTR dst, DWORD max ) ;
DWORD	(*GetKVersion)( void ) ;

void
init_convert( void )
{
	/* 僼僅儞僩DLL傪撉傒崬傓 */
	hKctrlDll = LoadLibrary( TEXT("KCTRL") ) ;
	if ( hKctrlDll ) {
		InitKanjiControls = (BOOL(*)(void))GetProcAddress( hKctrlDll, TEXT("InitKanjiControls") ) ;
		ReleaseKanjiControls = (void(*)(void))GetProcAddress( hKctrlDll, TEXT("ReleaseKanjiControls") ) ;
		if ( InitKanjiControls && ReleaseKanjiControls ) {
			if ( !(*InitKanjiControls)() ) {
				release_convert() ;
				return ;
			}
		}
		unicode2sjis = (void(*)(LPCTSTR,LPBYTE,DWORD))GetProcAddress( hKctrlDll, TEXT("unicode2sjis") ) ;
		sjis2unicode = (void(*)(const BYTE*,LPTSTR,DWORD))GetProcAddress( hKctrlDll, TEXT("sjis2unicode") ) ;
		GetKVersion = (DWORD(*)(void))GetProcAddress( hKctrlDll, TEXT("GetKVersion") ) ;
		if ( unicode2sjis && sjis2unicode && GetKVersion ) {
			DllVersion = GetKVersion() ;
		} else {
			release_convert() ;
		}
	}
}

void
release_convert( void )
{
	if ( hKctrlDll ) {
		(*ReleaseKanjiControls)() ;
		FreeLibrary( hKctrlDll ) ;
		hKctrlDll = 0 ;
	}
}

void
SjisToUnicode( const BYTE *src, LPTSTR dst, DWORD dstsize )
{
	if ( hKctrlDll ) {
		(*sjis2unicode)( src, dst, dstsize ) ;
	} else {
		mbstowcs( dst, src, strlen( src ) + 1 ) ;
	}
}

void
UnicodeToSjis( LPCTSTR src, LPBYTE dst, DWORD dstsize )
{
	if ( hKctrlDll ) {
		(*unicode2sjis)( src, dst, dstsize ) ;
	} else {
		wcstombs( dst, src, dstsize ) ;
	}
}

⌨️ 快捷键说明

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