• 締切済み

DLLへのアクセス

同じDLLに対して、VBとVCでアクセスしている場合に 想定外のエラーが出たことはありますか? 2個のプログラムから同じDLLにアクセスする場合は、DLL名を別名にした方がいいのでしょうか?

みんなの回答

  • wormhole
  • ベストアンサー率28% (1619/5652)
回答No.3

DLLは作ったことありませんが共有メモリなど複数のプログラムで共有するものを排他制御もなしに操作することがあれば問題になることはあります。 そういったケースはDLL自体に問題があるわけなのでDLL名を変えたところで問題解決にはならないはずです。 そんなの関係なしにDLLに問題が(バグ)ある場合もあるわけですが当然これもDLL名を変えたところで何の解決にもなりません。

aki2004-09-08
質問者

お礼

回答ありがとうございます。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

>同じDLL DLLはプロセス空間にロードされるので、 VBとVCが違うプロセスなら、それぞれ 別のメモリ空間にあり、干渉することは ありません。 DLLはよく作って利用しますが、呼び出し 元が違うと言って、動作が違ったことは この15年間、一度もありません。 VBがDLLを呼び出す時のメカニズムを ご存知でしょうか? 名前を変えて状況が変わるわけでは ありません。

aki2004-09-08
質問者

お礼

回答ありがとうございます。

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

> 同じDLLに対して、VBとVCでアクセスしている場合に > 想定外のエラーが出たことはありますか? 経験無いです。 > 2個のプログラムから同じDLLにアクセスする場合は、DLL名を別名にした方がいいのでしょうか? DLLの作りによると思います。 例えば、Windowsの共有DLLであるコモンコントロールなんかは、頻繁にそういう状態になると思いますが、VBとVCのプログラムが同時に使えないとかってのは聞いた事ないです。

aki2004-09-08
質問者

お礼

回答ありがとうございます。

関連するQ&A

  • mdbにアクセスするDLLを作成したい

    プログラム初心者です。 mdbにアクセスし、レコードの登録、削除ができるDLLを 作成したいのですが、初心者的に簡単なのは VBかVCおよびc++どちらが作りやすいでしょうか?

  • VisualStudio2010 DLL作成方法

    VisualStudio2010を使っています(初心者)。 VBで作成していたのですが、一部VC++を使わなければいけなくなりました。VC++はDLLで作成して、VBの方でDLLを参照して処理を行いたいと考えています。 そこで試しに作成したVC++で作成したDLLをVBで参照しようとしたらERRORになってしまい上手にできませんでした。※ERRORの内容までは詳しく覚えてません。VC++のDLLを作成~VBのDLLの参照までを説明しているサイトなどありましたら教えて下さい。 よろしくお願いします。

  • VB6からVC6で作成したDLLの関数を呼び出すときに注意すること

    VB6からVC6で作成したDLLの関数を呼び出すときに、型について気をつけないといけませんが、VB6でint型のものはVC6ではshortにしないといけないのでしょうか?マシンやOSや開発環境(例えばVS2005やGCC)により違ってくるのでしょうか? VB6とVC6でやり取りする場合の型について知りたいです。 あと、ActiveXのDLLの場合は関数にアクセスするのではなく、COM(という概念がわかっていないのですが)を使うのですか?

  • VC++のDLLファイルをVBで読み出せません。

    お世話になります。 プログラムをやり始めて3か月の初心者です。仕事で以下のような事をしていますが、うまくいかず悩んでいます。 プログラム(1):VB 2008年版 メインプログラム プログラム(2):C言語 2006年版 プログラム(3):VC++ VISUAL STUDIO2012 EXPRESSを使用 ■今のプログラム (2)のdllファイルを(1)で呼び出しています。問題なく動きます。 ■やりたい事 (2)のプログラム内容を変更したのが(3)です。そのdllファイルを(1)で呼び出したいです。 ⇒しかし、(3)のdllファイルを読み込むことができません。((3)のdllファイルは作れました。) (3)はVC単独では正しく動作します。 (1)のプログラムに、(2)を呼び出すときと同じように(3)用のプログラムを追加しました。作った(3)のdllファイルは指定したフォルダにきちんと入れています。 コンピューターに詳しい先輩が時間をかけてみてくれたのですが、結局わからずじまいでした。 ■質問 VBの型が古い、EXPRESSを使っているからできないのでしょうか? VCでdllを作って、VBで呼び出すまでの流れをわかりやすく紹介した書籍やWEBなどあればご教示頂けませんでしょうか? よろしくお願いいたします。

  • VB40032.DLLについて

    あるプログラムを実行するにあたり下記のような文が掲載してありました。 「このプログラムを実行するためにはVB40032.DLL(ビジュアルベーシックのダイナミックリンクライブラリー)が必要です。 あらかじめインストールされているパソコンではその場で実行できます。 実行してみて「DLLが見つかりません」等のエラーが出た場合は以下の操作を行ってください。 VB40032.DLLをダウンロードし¥WINDOWS\system32フォルダへ(このフォルダーがない場合は¥WINDOWS\systemフォルダ)に保存します。」 実際に¥WINDOWS\system32フォルダに保存しようとしたら「この場所に保存するアクセス許可がありません。管理者に連絡してアクセス許可を取得してください。」というメッセージになりました。ちなみにOSはWindows7です。 どうすればよろしいでしょうか?

  • VCで作成したDLLの使用

    VCで作成したDLLの使用 VC6.0で作成されたDLLファイルを使いたいのですが _stdcallで記述されたものではなく DllMainで記述されたものなのですが、 VBから呼び出す事は可能でしょうか? 普通にdeclare functionで呼び出そうとすると、 「エントリfnchogeがDLLファイル hoge.dll内に関数が見つかりません。」 とエラーがでるだけでした。 VB6.0SP3 Windows2000

  • DLLについて

    VC++でDLLを作成しようとしているのですがいくつか判らない点があります。 1. スタティックライブラリとスタティックリンクライブラリの違い。この二つの用語の違いが分かりません。 2.VBからVC++で作成したDLLを使用するときには.libファイルは必要ないのでしょうか。使用しなくても、使うことができたので。

  • VBで使用できるDLL(SSL通信)をVC++で作成する。

    VBで使用できるDLLをVC++で作成しました。 内容は、SSL転送をWindowsで行うためのDLLです。 DLLではなくexeで作成したときはDOS窓からうまく動いたのですが、 DLLで作成をして、VBから呼んだときにエラーメッセージがでてプログラムは実行されません。 エラーメッセージは、 実行時エラー'53': ファイルが見つかりません:dll-file-name です。 エラーにはいろいろな要素があると思うのですが、 このエラーが出るか出ないかは、関数の中のSSL通信のプログラムを書くと このエラーがでます。 例>SSLeay_add_ssl_algorithms(); SSL通信の記述がなければ正常に実行されるので、この部分だけだと思うの ですが、特別な設定、記述があれば教えてください。 よろしくお願いします。

  • VC++で作成したDLL呼び出しについて

    ご質問ですがVC6++で作成したDLLをVB6で呼び出すプログラムを作成し動作したのですが他のパソコンにコピーし同じフォルダ構成で保存したのですが実行時に「実行エラー'53' ファイルが見つかりません:C:\OpenCDforVB\Debug\OpenCVforVB.dll」が出てしまいます。 プログラムに何か修正をした訳ではありませんし、パソコン内の環境も大きな違いが無いと思うのですが・・!? どなたかわかりましたら宜しくお願い致します。

  • VB.NETで、DLLを頂いたんですが・・

    VB.NETでプログラムを作成しているのですが、 DLLを頂きました。 このDLLをプログラムで使いたいのですがよくわかりません。 (1)DLLは実行ファイルにおけばいいんですよね? (2)DLLを参照しろっていう設定は必要ですか? (3)DLLには、プロパティ、メソッド、イベントとあるみたいなんですが、これらを宣言しないといけないと思うのですがどうやればいいのでしょうか? (4)下のような資料もらったのですがVBcnvというのが定義されていないとエラーがでるのですがどうやって宣言するのでしょう? private <任意名> as VBcnv (5)libファイルも一緒にあったのですが、どういう風に使えばいいのでしょうか?何につかうのでしょうか? すいません、どなたかお助けを~