「VOCALOID1のSynthesize Engine 1.0と1.1の同時起動」の編集履歴(バックアップ)一覧に戻る
VOCALOID1のSynthesize Engine 1.0と1.1の同時起動 - (2010/03/03 (水) 13:05:36) のソース
*事前に知っておくべき事柄 +VOCALOID1 VSTi DLLの本体(vocaloid.dll)は,VOCALOID Editorのインストールディレクトリにある設定ファイル「VOCALOID.ini」の,[Synthesis]セクションのDSEVersionの項目を読み取って,Synthesize Engineを切り替える.DSEVersion=100なら1.0, DSEVersion=101なら1.1. +vocaloid.dllがVOCALOID.iniを読みにいくのは,dllのエントリーポイントであるDllMainが最初に呼ばれたときだけである(推測). +同一プロセスから2回目以降にLoadLibraryEx(WinAPI関数)でvocaloid.dllを読み込んだ場合,DllMainは呼ばれない. +VOCALOID.iniは,UAC(ユーザーアクセス制御)がデフォルトの設定のとき,書き込み制限がかかる. *Cadenciiの動作詳細 2種類のSynthesize Engineを読み込ませる場合における,Cadenciiの動作の詳細を時系列順に説明します. +vocaloid.dllをLoadLibraryExを用い読み込む.ここでは,VOCALOID.iniに記述されたデフォルトのSynthesize Engineで読み込まれる. +VOCALOID.iniを,一時ディレクトリにコピーし,バックアップを取る. +VOCALOID.iniのDSEVersionの項目を,デフォルトと違う値に書き換える.(DSEVersion=100 -> 101, DSEVersion=101 -> 100) +vocaloid.dllを,Kenji Aiko氏によるDLL読み込み方法(http://ruffnex.oc.to/kenji/text/load_dll/)で読み込む.この方法で読み込まれると,vocaloid.dllのディレクトリは同じであるにもかかわらず,別のdllとして読み込まれるため,エントリーポイントDllMainが実行される. +バックアップしておいたVOCALOID.iniを,元の位置に戻す. ----