- ベストアンサー
VB6.0でデータをVC++に渡す方法について
- VB6.0で作成したデータ(配列に入った数値)をVC++に渡す方法について知りたいです。
- VB6.0ではアドレス指定が困難なため、VBで計算した結果をVC++に渡してメモリに書き込む方法を考えています。
- VC++でDLLファイルを作成し、VBから参照する方法があるようですが、実現可能かどうかやコードの書き方、受け手側の記述方法などが分かりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>C言語でDLLを作成し、VBで呼び出すのでよろしいでしょうか? yoshi004さんの立場だとそういうことになります。 >なにか環境に関する読みやすい本はご存知でしょうか? さすがに私がDLL開発したのは10年くらい昔の話ですから 最近の本は分かりませんねえ。 ただ、昔と比べて書籍は不自由しないようになりましたから、 1フロアに専門書が置いてあるような大きな書店なら 目的の本はたいてい見つかると思います。 そういう場所で1~2時間くらいかけて目的の本を探すことも これまた必要な経験です。
その他の回答 (2)
- gungnir7
- ベストアンサー率43% (1124/2579)
>Visual Basicのような言語でGUI部を作成し、 >通信やデータベースアクセスではC言語を用いる 十分できますよ。これはどちらかといえば王道です。 >どこにどのようなコードを書けば良いか VBはVBのプロジェクト、VCはVCのプロジェクトで独立して開発します。 ただし、DLLのテストではVBアプリの助けが必要になります。 >受け手側はどのように記述すれば値を受けれるか C言語の引数として受け取ります。この辺りはVBの関数のコールと同じです。 ただし、CとVBでは内部ロジックが違いますので STDCALL規約に従わなければなりません。 はっきり言いまして、文法的なことはWEBでも十分分かるのですが、 こと環境に関することは本を1冊購入した方がいいです。 DLL開発の大変な点は、環境に関することがほとんどで、 一度ひながたができてしまえば、次からは大分苦労がなくなります。
- gungnir7
- ベストアンサー率43% (1124/2579)
やりたいことはだいたい見えてきました。 ただ、私の先ほどの回答通りVBだけでも可能な感じです。 具体的には私の1と3の回答を合わせます。 与えられたPCカード側(PCIボード?)のアドレスがPtrにlong値に 格納されているとして、例えば100バイトを操作したい場合に dim a() as byte ・・・ redim a(100) copymemory(a(0),ptr,100) こうすればaにPCカード側の値が100バイト入ってくるはずです。 これを自由に加工したあと、また copymemory(ptr,a(0),100) とすれば編集後の値が格納されます。 先のリンクにあるアドレスの操作は上記の配列aを加工することに他なりません。 このようにVBだけでも何とかなってしまうものです。 これでも、まだ質問内容が違うというのでしたら 一度質問を練り直して、ソース付きで質問した方がいいです。 >VC++でDLLファイルを作ってVBで参照する 正確にはC言語でDLLファイルを作成するだと思います。 (それとも本当にC++で作成するつもりだったのでしょうか) この辺りの表現は間違えるととんでもないことになります。 VBだけで十分手になるのでしたら、設計上DLLは不要です。 とはいえ、勉強をする気があるのでしたらDLL作成は一考でしょう。 PS なんかやっていることがPARの解析みたいですね
補足
丁寧に回答して頂きありがとうございます。 VBでも可能だと分かりました。 C言語で作成できならばC言語で行いたいと思うのですが。 http://hata.cc/docs/DLL/1.html ここにある「Visual Basicのような言語でGUI部を作成し、通信やデータベースアクセスではC言語を用いる場合、そのモジュール間で直接スタティックリンクを行なうのではなく、各々で個々にビルドを行ない、実行時にダイナミックにリンクする。」 まさにこのようなことがしたいと思っています。
お礼
ありがとうございます。 ということはC言語でDLLを作成し、VBで呼び出すのでよろしいでしょうか? 例えばCでメモリに書き込む関数などを作って、VBのほうで呼び出すような。 >はっきり言いまして、文法的なことはWEBでも十分分 >かるのですが、 >こと環境に関することは本を1冊購入した方がいい>です。 現在、「Visual BasicプログラマのためのVisual C++入門」という本を手に入れて読んでいるのですが、なにか環境に関する読みやすい本はご存知でしょうか?