WIN32APIをつかうDLLの作り方No.01643
111 さん 00/12/29 01:11
 
こんばんわ、111です。
秀丸のマクロヘルプに
「今回追加したDLL呼び出し機能は、あくまで秀丸エディタ用に作成された形式のDLL
のための機能であり、一般的なDLLの呼び出しや、WindowsAPIの呼び出しにはほとん
ど使えません。特に、WindowsAPIは呼び出し規約が_stdcallとなっているので呼び出
せません。
そういうDLLを呼び出したい場合には、パイパス用のDLLを作成してください。」
とありますがパイパス用のDLLというのはどういうものを作ればいいのでしょう。
ソースコードでもなんでもいいので作り方をおしえてください。
田楽DLLのようなものをつくりたいのです

[ ]
RE:01643 WIN32APIをつかうDLLの作り方No.01644
杉浦 まさき さん 00/12/29 23:41
 
111 さん、こんばんは。
田楽DLLの作者の杉浦です。

>ソースコードでもなんでもいいので作り方をおしえてください。

Win32API の呼出し規約云々はあまり気にしなくてもよいです(^^;。
C言語なら関数をふつ〜に書いて、関数定義の前に
__declspec(dllexport)
というおまじないをつけるだけでOKです。
#あと、C++ の場合はさらにその前に extern "C" をつけて下さい。

例えば、1個の文字列引数を取って整数を返す関数の場合は

// C 言語の場合
__declspec(dllexport) int hoge(const char* str) { .. }
// C++ 言語の場合
extern "C" __declspec(dllexport) int hoge(const char* str) { .. }

とすればよいです。
これを秀丸マクロで呼び出す時は
#n = dllfunc("hoge","hello");
という形になります。

#呼出し規約についてはお使いの開発環境のヘルプを参照して下さい(^^;。


[ ]
RE:01644 WIN32APIをつかうDLLの作り方No.01645
encodingshiftjis さん 00/12/30 16:40
 
kernel32.Dll ではないですが

秀丸エディタ マクロ作者会議室 で[検索]したらどうでしょう
 01271 00/03/28 12:17  MSVCRT.DLL の利用
 01276 00/03/29 16:20  RE:01271 MSVCRT.DLL の利用 BCC5.5
フリーのBCCも少し新しくなっているはず、LibMainも省略しても
いいかも。BCCの使い方はCマガジンのバックナンバーなどで

秀丸からDLLを使う方向性は ? 適不適をよく考えて
一括処理を早くするなら最初から普通の言語で書いたほうがよい
Kernel32 等を使うにしても、全機能をスムースに使えるパラメータ
渡しの機構は秀丸側にないからVB族ほど楽はできないし
基本動作としては、クリップボードを往復の媒体して文字列の変形
をするとか、システムの情報を取得するタイプでしょうか。
COMを使うのなら役に立つが秀丸マクロでそこまで
WSHと張り合わなくともという気もするし。

[ ]