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

📄 cmigemo.cpp

📁 日本的开源编辑器源码
💻 CPP
字号:
//	$Id: CMigemo.cpp,v 1.1 2005/01/10 13:02:50 genta Exp $
/*!	@file
	@brief C/Migemo インターフェース

	@author isearch
	@date 2004.09.14 新規作成
*/

#include "CMigemo.h"
#include "Csharedata.h"
#include "etc_uty.h"
//-----------------------------------------
//	DLL 初期化関数
//-----------------------------------------
CMigemo* CMigemo::_instance;

CMigemo* CMigemo::getInstance(){
	return _instance;
}

CMigemo::CMigemo() {
	_instance = this;
}


int CMigemo::InitDll(void)
{
	//	staticにしてはいけないらしい
	
	const ImportTable table[] = {
		&m_migemo_open              ,"migemo_open"              ,
		&m_migemo_close             ,"migemo_close"             ,
		&m_migemo_query             ,"migemo_query"             ,
		&m_migemo_release           ,"migemo_release"           ,
		&m_migemo_set_operator      ,"migemo_set_operator"      ,
		&m_migemo_get_operator      ,"migemo_get_operator"      ,
		&m_migemo_setproc_char2int  ,"migemo_setproc_char2int"  ,
		&m_migemo_setproc_int2char  ,"migemo_setproc_int2char"  ,
		&m_migemo_load              ,"migemo_load"              ,
		&m_migemo_is_enable         ,"migemo_is_enable"         ,     
		NULL, 0
	};
	
	if( ! RegisterEntries(table) ){
			return 1;
	}

	if( ! migemo_open(NULL) )
		return 1;
	
	return 0;
}

int CMigemo::DeInitDll(void)
{
	migemo_close();
	return 0;
}

char* CMigemo::GetDllName(char *)
{
	char* szDll;
	static char szDllName[_MAX_PATH];
	szDll = CShareData::getInstance()->GetShareData()->m_Common.m_szMigemoDll;

		
	if(strlen(szDll)==0)
		return "migemo.dll";
	else{
		if(_IS_REL_PATH(szDll)){
			GetExecutableDir(szDllName , szDll);
			szDll = szDllName;
		}
		return szDll;
	}
	//return "migemo.dll";
}

long CMigemo::migemo_open(char* dict)
{	

	if (!IsAvailable())
		return 0;

	m_migemo = (*m_migemo_open)(NULL);
	
	if (m_migemo == NULL)
		return 0;
	
	//if (!migemo_load(MIGEMO_DICTID_MIGEMO, path2))
	//	return 0;
	
	return 1;
}
void CMigemo::migemo_close()
{
	if (!IsAvailable() || (m_migemo == NULL))
		return;

	(*m_migemo_close)(m_migemo);

}
unsigned char* CMigemo::migemo_query(unsigned char* query)
{
	if (!IsAvailable() || (m_migemo == NULL))
		return NULL;
	
	return (*m_migemo_query)(m_migemo, query);
}
void CMigemo::migemo_release( unsigned char* string)
{
	if (!IsAvailable() || (m_migemo == NULL))
		return;

	(*m_migemo_release)(m_migemo, string);

}
int CMigemo::migemo_set_operator(int index, unsigned char* op)
{
	if (!IsAvailable() || (m_migemo == NULL))
		return 0;
	
	return (*m_migemo_set_operator)(m_migemo, index, op);

}
const unsigned char* CMigemo::migemo_get_operator(int index)
{
	if (!IsAvailable() || (m_migemo == NULL))
		return NULL;
	
	return (*m_migemo_get_operator)(m_migemo,index);

}
void CMigemo::migemo_setproc_char2int(MIGEMO_PROC_CHAR2INT proc)
{
	if (!IsAvailable() || (m_migemo == NULL))
		return ;
	
	(*m_migemo_setproc_char2int)(m_migemo,proc);
}
void CMigemo::migemo_setproc_int2char(MIGEMO_PROC_INT2CHAR proc)
{
	if (!IsAvailable() || (m_migemo == NULL))
		return;

	(*m_migemo_setproc_int2char)(m_migemo,proc);
}
int CMigemo::migemo_load(int dict_id, char* dict_file)
{
	if (!IsAvailable() || (m_migemo == NULL))
		return 0;
	return (*m_migemo_load)(m_migemo, dict_id, dict_file);

}
int CMigemo::migemo_is_enable()
{
	if (!IsAvailable() || (m_migemo == NULL))
		return 0;
	
	return (*m_migemo_is_enable)(m_migemo);
}

int CMigemo::migemo_load_all()
{
	if( !migemo_is_enable()){
		
		char* szDict = CShareData::getInstance()->GetShareData()->m_Common.m_szMigemoDict;
		char path[MAX_PATH];
		//char path2[MAX_PATH];
		char *ppath;
		
		if (strlen(szDict) == 0){
			GetExecutableDir(path,"dict");
			
			//::GetModuleFileName(NULL,path,MAX_PATH);
			//::GetFullPathName(path,260,path2,&ppath);			
			//strcpy(ppath, "dict\\");
		}else{
			if (_IS_REL_PATH(szDict)){
				GetExecutableDir(path,szDict);
			}else{
				strcpy(path,szDict);
			}
		}
		ppath = &path[strlen(path)];
		*(ppath++) = '\\';

		strcpy(ppath,"migemo-dict");
		migemo_load(MIGEMO_DICTID_MIGEMO,path);
		strcpy(ppath,"han2zen.dat");
		migemo_load(MIGEMO_DICTID_HAN2ZEN,path);
		strcpy(ppath,"hira2kata.dat");
		migemo_load(MIGEMO_DICTID_HIRA2KATA,path);
		strcpy(ppath,"roma2hira.dat");
		migemo_load(MIGEMO_DICTID_ROMA2HIRA,path);
	}
	return 1;
}

CMigemo::~CMigemo()
{
}

⌨️ 快捷键说明

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