ページ 11

DLLからDLLの実行

Posted: 2006年1月27日(金) 20:20
by ぱん
ども、はじめまして。m(_ _)m
タイトルの通りなのですが、DLLからDLLを呼び出す

アプリ → ABで作ったDLL → DLL

という呼び出し方法が、よくわかりません。

なぜこのような事をしないといけないかと言いますと、
最近ネットを流れていたら、
ピストンコラージュ(http://hp.vector.co.jp/authors/VA022293/
という作曲ツールを発見、国産MODみたいな感じです。
さらに他のアプリから呼び出すDLLまで付属していました。

これを使うには引数に1ヶ所実数の指定が必要で、事情によりアプリから直接操作できません。
そこでABならDLLが作れるので、色々試すのですが、うまくいきません。

ABのexeプロジェクトならば、単純に
上記で一応再生出来ました・・。

DLL時のヒントだけでも教えていただけるとありがたいです。

Posted: 2006年1月28日(土) 09:11
by Sinryow
DLLからDLLが呼び出せないということはないと思います。
※もしそうなら,DLLからWin32APIも呼べないわけですから

ですから,DLLを生成する場合のコードと,その(ABで作られたほうの)DLLを呼び出すコードを見ないと何ともいえないと思います。

Posted: 2006年1月31日(火) 01:32
by ぱん
>DLLを生成する場合のコードと,その(ABで作られたほうの)DLLを呼び出すコードを見ないと何ともいえないと思います。

すいません、返事が遅くなりました。m(_ _;)m
そうですね。コードを載せますね。
上記のコードでは、初期化の時点で必ず強制終了になってしまいます。

元々の呼び出しアプリ側は、数値はLong型と文字型の2種類のみです。
dmy = PxtoneInit(hWnd)
という感じで呼び出しています。

間違っている点がありましたらご指摘ください。m(_ _)m

Posted: 2006年2月04日(土) 10:25
by Sinryow
DLL宣言の「Lib」の前に「CDECL」を付けて試していただけないでしょうか?
http://ab.sinryow.net/topic04.php
C言語向けのDLLは,DLLのコードの内部構造がABと異なる場合があります。

おああ

Posted: 2006年2月06日(月) 19:24
by ぱん
Bingo!!!

まさにそれでした。。ありがとうございます!
何事も無かったように、普通に動作してくれました。

Sinryowさんに感謝!m(_ _)m