トップページ > 記事閲覧
.Net + Live2Dで、32bit版CubismCore.dllの読み込みに失敗します
名前:らふれしあ 日時: 2020/03/24 09:44

using System; using DxLibDLL; class Program { // 読み込むCubismCore.dllのbit版を設定(手動切り替えテスト) static readonly int OS_VER = 32; static int Main(string[] args) { // Live2Dモデル用変数 int modelHandle; // ウィンドウモードで起動 DX.ChangeWindowMode(DX.TRUE); // OSのbit数に応じてCore.dllをセット if (OS_VER == 32) { // 32bit版 DX.Live2D_SetCubism4CoreDLLPath("Live2D_Dll/x86/Live2DCubismCore.dll"); Console.WriteLine("32bit版"); } else if (OS_VER == 64) { // 64bit版 DX.Live2D_SetCubism4CoreDLLPath("Live2D_Dll/x86_64/Live2DCubismCore.dll"); Console.WriteLine("64bit版"); } // DXライブラリの初期化 if (DX.DxLib_Init() == -1) { return -1; } // Live2Dモデルの読み込み modelHandle = DX.Live2D_LoadModel("Live2D/Hiyori/Hiyori.model3.json"); Console.WriteLine("modelHandle = " + modelHandle); // 描画先を裏画面に設定 DX.SetDrawScreen(DX.DX_SCREEN_BACK); // メインループ while (DX.ProcessMessage() == 0) { // 画面の初期化 DX.ClearDrawScreen(); // エスケープキー押下でループを抜ける if (DX.CheckHitKey(DX.KEY_INPUT_ESCAPE) == 1) break; // スペースキーを押したらアイドリングモーションをランダムで再生 if (DX.CheckHitKey(DX.KEY_INPUT_SPACE) == 1) { DX.Live2D_Model_StartMotion(modelHandle, "Idle", DX.GetRand(1)); } // モデルの状態を60分の1秒分進める DX.Live2D_Model_Update(modelHandle, 1 / 60.0f); // Live2D描画の開始 DX.Live2D_RenderBegin(); // モデルの描画 DX.Live2D_Model_Draw(modelHandle); // Live2D描画の終了 DX.Live2D_RenderEnd(); // 裏画面の内容を表画面に反映 DX.ScreenFlip(); } // Live2Dモデルの破棄 DX.Live2D_DeleteModel(modelHandle); // DXライブラリ終了処理 DX.DxLib_End(); return 0; } }  いつもお世話になっております。  64ビット版のCubismCore.dllを読み込んだ場合はモデルデータが表示されるのですが、  32ビット版を読み込むと表示されません。modelHandleの値も-1でした。  デバッグ時に出力されたlogを見てみると、  64ビット版 ->「Live2DCubismCore.dll の読み込みに成功しました」  32ビット版 ->「Live2DCubismCore.dll の読み込みに失敗しました」  と、32ビット版だけdllの読み込みができていないようなのです。  SDKはCubismSdkForNative-4-r.1を使用しています。  パス名も間違っていないようですので、原因は何なのでしょうか……?  よろしくお願いいたします。
メンテ

Page: 1 |

Re: .Net + Live2Dで、32bit版CubismCore.dllの読み込みに失敗します ( No.1 )
名前:管理人 日時:2020/03/25 00:01

すみません、最近 CubismSdkForNative-4-r.1 で正常に動作しないバグを修正しましたので、 よろしければこちらの暫定最新版をお使いください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 あと、32bitアプリとして実行されているかどうかは以下の if文の方が確実ですので、よろしければ OS_VER の代わりにこちらをお使いください m(_ _)m if( System.IntPtr.Size == 4 ) { // 32bit起動の場合はここにきます } else { // 64bit起動の場合はここにきます }
メンテ
Re: .Net + Live2Dで、32bit版CubismCore.dllの読み込みに失敗します ( No.2 )
名前:らふれしあ(解決) 日時:2020/03/26 20:23

管理人様 迅速なお返事ありがとうございました。 暫定最新版のDllで無事32bit SDKを読み込むことができました! また、if文も併せてありがとうございます。差し替えて使わさせていただきます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存