DLLからDLLの実行
Posted: 2006年1月27日(金) 20:20
ども、はじめまして。m(_ _)m
タイトルの通りなのですが、DLLからDLLを呼び出す
アプリ → ABで作ったDLL → DLL
という呼び出し方法が、よくわかりません。
なぜこのような事をしないといけないかと言いますと、
最近ネットを流れていたら、
ピストンコラージュ(http://hp.vector.co.jp/authors/VA022293/)
という作曲ツールを発見、国産MODみたいな感じです。
さらに他のアプリから呼び出すDLLまで付属していました。
これを使うには引数に1ヶ所実数の指定が必要で、事情によりアプリから直接操作できません。
そこでABならDLLが作れるので、色々試すのですが、うまくいきません。
ABのexeプロジェクトならば、単純に
DLL時のヒントだけでも教えていただけるとありがたいです。
タイトルの通りなのですが、DLLからDLLを呼び出す
アプリ → ABで作ったDLL → DLL
という呼び出し方法が、よくわかりません。
なぜこのような事をしないといけないかと言いますと、
最近ネットを流れていたら、
ピストンコラージュ(http://hp.vector.co.jp/authors/VA022293/)
という作曲ツールを発見、国産MODみたいな感じです。
さらに他のアプリから呼び出すDLLまで付属していました。
これを使うには引数に1ヶ所実数の指定が必要で、事情によりアプリから直接操作できません。
そこでABならDLLが作れるので、色々試すのですが、うまくいきません。
ABのexeプロジェクトならば、単純に
[ここをクリックすると内容が表示されます]
上記で一応再生出来ました・・。コード: 全て選択
'-----------------------------------------------------------------------------
' イベント プロシージャ
'-----------------------------------------------------------------------------
' このファイルには、ウィンドウ [MainWnd] に関するイベントをコーディングします。
' ウィンドウ ハンドル: hMainWnd
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Declare Function pxtone_Ready Lib "pxtone.dll" (hWnd as HWND, channel_num as Long, sps as Long, bps as Long, buffer_sec as Single, bDirectSound as Long, pProc as Long) as Long
Declare Function pxtone_Tune_Load Lib "pxtone.dll" (hModule as Long, type_name as Long, file_name as BytePtr) as Long
Declare Function pxtone_Tune_Play Lib "pxtone.dll" (start_sample as Long, fade_msec as Long) as Long
Declare Function pxtone_Tune_Stop Lib "pxtone.dll" () as Long
Dim dmy0 as Long
Dim dmy1 as Long
Dim dmy2 as Long
Dim dmy3 as Long
'-----------------------------------------------------------------------------
' ウィンドウメッセージを処理するためのコールバック関数
Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
' イベントプロシージャの呼び出しを行います。
MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Function
'-----------------------------------------------------------------------------
' ここから下は、イベントプロシージャを記述するための領域になります。
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
dmy0 = pxtone_Ready(hMainWnd, 2, 44100, 16, 0.1, TRUE, NULL)
SetWindowText(hMainWnd, Str$(dmy0))
End Sub
Sub MainWnd_Destroy()
pxPlayer_DestroyObjects()
PostQuitMessage(0)
End Sub
Sub MainWnd_CommandButton1_Click()
dmy1 = pxtone_Tune_Play(0,0)
SetWindowText(hMainWnd, Str$(dmy1))
End Sub
Sub MainWnd_CommandButton2_Click()
dmy2 = pxtone_Tune_Stop()
End Sub
Sub MainWnd_CommandButton3_Click()
Dim file_name as String
file_name = "hoge.ptcop"
dmy3 = pxtone_Tune_Load(NULL, NULL, StrPtr(file_name))
SetWindowText(hMainWnd, Str$(dmy3))
End Sub
DLL時のヒントだけでも教えていただけるとありがたいです。