2 using System.Collections.Generic;
\r
4 using System.Runtime.InteropServices;
\r
5 using System.Threading;
\r
6 using System.Diagnostics;
\r
7 using System.Windows.Forms;
\r
11 internal class Program
\r
13 #region [ 二重機動チェック、DLL存在チェック ]
\r
14 //-----------------------------
\r
15 private static Mutex mutex二重起動防止用;
\r
17 private static bool tDLLの存在チェック( string strDll名, string str存在しないときに表示するエラー文字列 )
\r
19 IntPtr hModule = LoadLibrary( strDll名 );
\r
20 if( hModule == IntPtr.Zero )
\r
22 MessageBox.Show( str存在しないときに表示するエラー文字列, "DTXMania runtime error", MessageBoxButtons.OK, MessageBoxIcon.Hand );
\r
25 FreeLibrary( hModule );
\r
29 [DllImport( "kernel32", CharSet = CharSet.Unicode, SetLastError = true )]
\r
30 internal static extern void FreeLibrary( IntPtr hModule );
\r
32 [DllImport( "kernel32", CharSet = CharSet.Unicode, SetLastError = true )]
\r
33 internal static extern IntPtr LoadLibrary( string lpFileName );
\r
34 //-----------------------------
\r
38 private static void Main()
\r
40 mutex二重起動防止用 = new Mutex( false, "DTXManiaMutex" );
\r
42 if( mutex二重起動防止用.WaitOne( 0, false ) )
\r
44 string newLine = Environment.NewLine;
\r
47 if( !tDLLの存在チェック( "FDK.dll", "FDK.dll またはその依存するdllが存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。" ) ) flag = true;
\r
48 if( !tDLLの存在チェック( "SlimDX" + CDTXMania.SLIMDXDLL, "SlimDX" + CDTXMania.SLIMDXDLL + ".dll またはその依存するdllが存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。" ) ) flag = true;
\r
49 if( !tDLLの存在チェック( "xadec.dll", "xadec.dll が存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。" ) ) flag = true;
\r
50 if( !tDLLの存在チェック( "SoundDecoder.dll", "SoundDecoder.dll またはその依存するdllが存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。" ) ) flag = true;
\r
51 if( !tDLLの存在チェック( CDTXMania.D3DXDLL, CDTXMania.D3DXDLL + " が存在しません。" + newLine + "Direct Regist フォルダの DXSETUP.exe を実行し、" + newLine + "必要な DirectX ランタイムをインストールしてください。" ) ) flag = true;
\r
54 using( var mania = new CDTXMania() )
\r
57 Trace.WriteLine( "" );
\r
58 Trace.WriteLine( "遊んでくれてありがとう!" );
\r
60 if( Trace.Listeners.Count > 1 )
\r
61 Trace.Listeners.RemoveAt( 1 );
\r