• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:BREGEXP.DLLをBCC Developerで使いたい)

BCC DeveloperでBREGEXP.DLLを使用する際のエラーと解決方法

このQ&Aのポイント
  • BCC DeveloperでBREGEXP.DLLを使用しようとした際に、アクセスエラーや関数の見つからないなどのエラーが発生しました。
  • 設定でインクルードパスとライブラリファイルを指定しましたが、エラーメッセージは変わりませんでした。
  • BCC DeveloperでBREGEXP.DLLを使用するための設定方法や解決策について助けを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

bccのコンパイラと一緒に配布されているツールの中に、 implib.exe というのがあると思いますが、これを使えば.dllファイルから bcc用の.libファイルを作ることができます。 Pure Data の external を Borland C++ 5.5 で コンパイルする http://nul.jp/2002/pd_bc 「DLL」の検索結果 - MEMO:はてな支店 http://d.hatena.ne.jp/katona/searchdiary?word=DLL この辺に使用例がありますので参考にしてください。 > あとまだまだ初心者なものでDLLとLIBファイルの理解が曖昧なのですが、 > DLLはどのプログラムからでも読み込めるけど、LIBファイルは > OBJファイルの集まりらしいので > (​ http://m--takahashi.com/bbs/pastlog/a6700/A6655.html)​ > コンパイラに依存する、ということでよろしいのでしょうか? おおむねそのような理解でいいと思います。 .obj自体の形式もvcとbccでは違ったりしますが。 >BREGEXPのフォルダのパスは C:\BCCDev\lib\bregexp です。 >そこにBREGEXP.DLL、BREGEXP.LIBなどが入っていて、 >-LC:\BCCDev\lib\bregexp >-IC:\BCCDev\lib\bregexp >と設定しました。 bregexp.dllに関しては、プログラムを実行するときにプログラムから 参照できないといけないので、実行ファイル(.exe)と同じ場所に置くか PATH環境変数に登録されているディレクトリに置くなどしてください。 Vistaだとさらに手間がかかる可能性がありますがまずはこれくらいで。

kirikirkaz
質問者

お礼

皆さん、すいませんでした。 僕の勘違いで、BRegFreeではなくBRegfreeでした orz > bccのコンパイラと一緒に配布されているツールの中に、 > implib.exe というのがあると思いますが、これを使えば.dllファイルから > bcc用の.libファイルを作ることができます。 ありがとうございます。 ちょうどその答えにたどり着いたところです。 しかし私の環境ではimplib.exeで作ったLIBファイルだと正常にリンクできず(「~が未解決です」と出ます)、 色々探したところどうやら同じbccのフォルダ内にあるcoff2omf.exeという VC++形式のLIBファイルをBCC形式に直すという正に僕のためのようなプログラムがあったので それを使って作成したところ、正常にリンクされました。 coff2omf [input(VC++)] [output(BCC)] でできるらしいです。 Bcc55\Binフォルダの中のツールは結構面白そうなツールがたくさんありますね。 http://www6.plala.or.jp/mnagaku/cmag/ac20005/ やっぱりコンパイラとかライブラリとかのせいにしちゃいけないですね^^; 本当に皆さんありがとうございましたm(_ _)m

kirikirkaz
質問者

補足

皆さんとか言ってすいませんでした。。。orz 一人でこれだけ調べてくれたことに本当に驚き、感謝してます。 ありがとうございましたm(_ _)m

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

そのBREGEXP.DLLはどこから入手したものですか? 大元の配布物はVC++用の.libしか同梱されていないので、自分でつくるなりしないと >ライブラリファイルの指定にはBREGEXP.LIBを指定しましたが BorlandのコンパイラではVC++用のライブラリファイルは使えません。 したがってリンク時にエラーになります。 >プログラムのメイク時にendpとstartpはbregexpのメンバではない、BRegFree関数が見つからない こちらに関しては、バージョンによるのか、ライブラリで使用している 構造体の構成が異なるものがあるようです。 にある配布物中のヘッダファイルだと、endpやstartpというメンバーはありません。 typedef struct bregexp { const char *outp; /* result string start ptr */ const char *outendp; /* result string end ptr */ const int splitctr; /* split result counter */ const char **splitp; /* split result pointer ptr */ int rsv1; /* reserved for external use */ } BREGEXP; Linux用ということで配布されているソースに含まれているヘッダファイルだと typedef struct bregexp { const char *outp; /* result string start ptr */ const char *outendp; /* result string end ptr */ const int splitctr; /* split result counter */ const char **splitp; /* split result pointer ptr */ int rsv1; /* reserved for external use */ char *parap; /* parameter start ptr ie. "s/xxxxx/yy/gi" */ char *paraendp; /* parameter end ptr */ char *transtblp; /* translate table ptr */ char **startp; /* match string start ptr */ char **endp; /* match string end ptr */ int nparens; /* number of parentheses */ } BREGEXP; こっちにはあります。 ということで入手元やどのように自分のディスクに展開したかなどを 補足してください。 >誰かご享受願います。。。 何かもらえるんですか? :) #享受→教授→教示

kirikirkaz
質問者

補足

http://www.hi-ho.ne.jp/babaq/bregexp.html ここから入手しました。 しかしおっしゃる通り構造体が少なくて自分で足したり 色々試行錯誤してたところです。 > 大元の配布物はVC++用の.libしか同梱されていないので、自分でつくるなりしないと > BorlandのコンパイラではVC++用のライブラリファイルは使えません。 調べてみたらVC++だとDLLからLIBファイルを作る方法は見つかったのですが、 (http://konuma.txt-nifty.com/blog/2006/11/dlllib_5de9.html) BCC用のLIBファイルを作る方法が分かりません。。。教えていただけないでしょうか。 あとまだまだ初心者なものでDLLとLIBファイルの理解が曖昧なのですが、 DLLはどのプログラムからでも読み込めるけど、LIBファイルは OBJファイルの集まりらしいので(http://m--takahashi.com/bbs/pastlog/a6700/A6655.html) コンパイラに依存する、ということでよろしいのでしょうか? BREGEXPのフォルダのパスは C:\BCCDev\lib\bregexp です。 そこにBREGEXP.DLL、BREGEXP.LIBなどが入っていて、 -LC:\BCCDev\lib\bregexp -IC:\BCCDev\lib\bregexp と設定しました。 > 何かもらえるんですか? :) > #享受→教授→教示 うわー。恥ずかしい・・・ まず日本語覚えてきます。。。

すると、全ての回答が全文表示されます。

関連するQ&A