- ベストアンサー
VB2008でクラスライブラリー(DLL)を作成中なのですが、旨く出来
VB2008でクラスライブラリー(DLL)を作成中なのですが、旨く出来ません。 それは、マウスでクリックした座標(X,Y)を取得したいのです。 ご存じの方がいらっしゃいましたらご教授下さいませ。 サンプルリストを書いて戴けると非常に嬉しいです。 以上 宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
こんばんは。以前 FX・為替カテゴリで質問されていた方ですね。edp3142 です。 貴方の根性に敬意を表して、私も少し調べてみましたところ、かなり近いというかそのものの記事を見つけましたので、貼っておきます。ある方の Blog です。下記の3エントリを読むとよいでしょう。 http://d.hatena.ne.jp/fai_fx/20091010/1255100415 http://d.hatena.ne.jp/fai_fx/20091011/1255187230 http://d.hatena.ne.jp/fai_fx/20091012/1255273251 結局のところ、MetaTrader から 直接 Windows API を利用しているようなので、VB2008は不要です。 蛇足ですが、貴方の用途ではクラスライブラリではダメです。 DLL ファイルというのは拡張子が同じでも下記のように色々種類があるのです。 ただのDLL ActiveX DLL .NET用クラスライブラリ DLL
その他の回答 (3)
- layy
- ベストアンサー率23% (292/1222)
あいにくサンプルはないしそのMQL4言語もわからないですが、 VBでダミーのEXEを作成し、そのEXEからそのDLLが実行できるか、 これを試してからMQL4でも実行できるか、ではないでしょうか?。 座標を取得にはやはりマウスの動きを制御するプログラムが 参考になると思います。 今のところ、取得がおかしいのか引き渡しがおかしいのか 見極めできていないのではないでしょうか。 subで記載してますが、FUNCTIONでないと値は親プログラムへ渡らないです。
- redfox63
- ベストアンサー率71% (1325/1856)
#MQLというのは知らないのですが … DLLから 値を取得したいのであれば Function定義で値を返すか、関数の引数で値を取得するようにしないとまずいように思います ただし MQLで扱える型と VB.NETとの整合が取れるかどうか 扱うマウス座標は VB.NET製のWindows.Formアプリなのか など 懸案事項があるように思います
補足
早速のご回答有り難うございます。 正式にはMQL4と言います。 MT4(メタトレーダー)の自動売買等のプログラミングを行います。 普通の多くの関数ならMQL4が持っているのですが、持っていない関数はAPI等からDLLとして使用します。 画面のX,Y座標の取得の関数が有りません。 それで、必要なのです。 それで、今クラスライブラリーを作成中なのです。 ところで、クラスライブラリー(DLL)というのと、API関数、Windowsライブラリーと色々あるのですが、クラスライブラリーを作成中なのですが、このライブラリーでは他の言語にインポートしては使えないものなのでしょうか。 Functionとありますが、呼び出し元に値を返す事の出来るプロシジャーですよね。 いまいち良く分かりませんので宜しくお願い致します。
- Saturn5
- ベストアンサー率45% (2270/4952)
今はVBの無い環境で、推定で申し訳ないですが... 最近のVBはたいていの操作がフレームワークになっていて、 DLLは使わないようになっているのではないでしょうか? また、マウスクリックの座標はマウスクリックのイベントの 引数で得られると思います。
補足
早速のご回答を有り難うございました。 私はとにかく、DLLで作ったプログラムかAPIが必要なのです。 APIにでもあれば作る必要はないのですが、あるか無いかも分からないので作成しております。 マウスの座標を取得して、値をMQLと言う言語に渡したいのです。 以下に作成してみましたが、エラーでコンパイル出来ません。 以上宜しくお願いします。 -------------------------------------------------------------------------- Public Class zahyo Private Sub zahyou() Dim i As Integer Dim xzahyo As Integer Dim yzahyo As Integer For i = 1 To 10000 xzahyo = Windows.Forms.Cursor.Position.X.ToString() yzahyo = Windows.Forms.Cursor.Position.Y.ToString() 'Doevent Return xzahyo Next End Sub End Class -------------------------------------------------------------------------------
お礼
早速のご回答有り難うございます。 このサイトは非常に参考になります。 教えて戴いて有り難うございます。 まだ、完全に理解しておりませんが、勉強してみます。 これが私の知りたい事でした。 APIの使い方等、勉強致します。 この度は本当に有り難うございました。