![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
BREGEXP.DLLをBCC Developerで使いたいと思ったのですがプログラムのメイク時にendpとstartpはbregexpのメンバではない、BRegFree関数が見つからないなど多数エラーが出てしまいました。
設定は、インクルードパスにBREGEXPのフォルダを指定し、その他オプションにも「-LBREGEXP.DLLが入ってるフォルダ」とBREGEXPのフォルダを指定しました。
ライブラリファイルの指定にはBREGEXP.LIBを指定しましたが、指定してもしなくてもエラーメッセージは変わりませんでした。
設定がおかしいのでしょうか?
というかそもそもbccでBREGEXP.DLLは使えるのでしょうか?
誰かご享受願います。。。
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. …
> コンパイラに依存する、ということでよろしいのでしょうか?
おおむねそのような理解でいいと思います。
.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だとさらに手間がかかる可能性がありますがまずはこれくらいで。
この回答への補足
皆さんとか言ってすいませんでした。。。orz
一人でこれだけ調べてくれたことに本当に驚き、感謝してます。
ありがとうございましたm(_ _)m
皆さん、すいませんでした。
僕の勘違いで、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
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 */
intrsv1;/* 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;
こっちにはあります。
ということで入手元やどのように自分のディスクに展開したかなどを
補足してください。
>誰かご享受願います。。。
何かもらえるんですか? :)
#享受→教授→教示
この回答への補足
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_ …
BCC用のLIBファイルを作る方法が分かりません。。。教えていただけないでしょうか。
あとまだまだ初心者なものでDLLとLIBファイルの理解が曖昧なのですが、
DLLはどのプログラムからでも読み込めるけど、LIBファイルは
OBJファイルの集まりらしいので(http://m--takahashi.com/bbs/pastlog/a6700/A6655. …
コンパイラに依存する、ということでよろしいのでしょうか?
BREGEXPのフォルダのパスは C:\BCCDev\lib\bregexp です。
そこにBREGEXP.DLL、BREGEXP.LIBなどが入っていて、
-LC:\BCCDev\lib\bregexp
-IC:\BCCDev\lib\bregexp
と設定しました。
> 何かもらえるんですか? :)
> #享受→教授→教示
うわー。恥ずかしい・・・
まず日本語覚えてきます。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/26 17:13
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/12 16:58
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) excelvbaでスライドショーを作りたい 2 2023/04/20 14:32
- Visual Basic(VBA) VBAでファイル名を指定して保存するとき 4 2023/03/26 21:55
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数がDLLファイル内に見つかり...
-
VB.NETで他のプロジェクトで作...
-
C#のクラスをVB.netで使用したい!
-
VS2010 ProductVersion 変更
-
ACCESSのEXEを作るのは可能...
-
VisualBasicを保存するときにで...
-
ソースから参照しているOCXの一...
-
Visual Studio2008でヘッダファ...
-
libssh2のインクルード
-
VB6 exeファイルのプロパティの...
-
一番長い、プログラミングのソ...
-
Visual Studioでプロジェクトが...
-
同じソースコードなのにバイナ...
-
プロジェクトフォルダの名前の...
-
コンパイルするときに、ファイ...
-
VB6 SP6 アイコンとフォームに...
-
他の.CPPファイルに定義した関...
-
【C#】exeファイルに複数アイコ...
-
VC++でexeファイルが作成できま...
-
bcrypt.h コンパイルエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで他のプロジェクトで作...
-
コンパイルするときに、ファイ...
-
ACCESSのEXEを作るのは可能...
-
ソースから参照しているOCXの一...
-
エラーの原因は?「この関数の...
-
VB6で、非表示モジュール(?)の...
-
VC++でexeファイルが作成できま...
-
他の.CPPファイルに定義した関...
-
C#のクラスをVB.netで使用したい!
-
VisualBasicを保存するときにで...
-
Visual Studioでプロジェクトが...
-
VB6.0の別名保存について
-
VB.NETでActiveX(OCXファイル)作成
-
Visual Stadio2008 Releaseビル...
-
「マージする」とは?
-
srand48? drand48?
-
VC++(VS)でコンソールアプリ(...
-
プリコンパイル?
-
Visual Studio2008でヘッダファ...
-
Wingdi.h Windows.h を開くには?
おすすめ情報