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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで他のプロジェクトで作...
-
ACCESSのEXEを作るのは可能...
-
プロジェクトフォルダ名の変更...
-
VB.NETでActiveX(OCXファイル)作成
-
VC++でexeファイルが作成できま...
-
ユーザー名・作成者について(Vi...
-
VB6.0
-
VisualBasicを保存するときにで...
-
sys/ipc.h や sys/shm.h
-
よく似たプロジェクト
-
コンパイルするときに、ファイ...
-
エラーの原因は?「この関数の...
-
.NETとc関数の両方を使うコン...
-
C言語初心者の質問失礼します。
-
コマンド(例えばls)の出力結果...
-
フルパスから最後のディレクト...
-
FTPでputすると空ファイルが出...
-
どんなプログラムを書いても指...
-
Access クエリ実行が急に非常に...
-
ファイルやディレクトリの存在...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで他のプロジェクトで作...
-
ACCESSのEXEを作るのは可能...
-
ソースから参照しているOCXの一...
-
エラーの原因は?「この関数の...
-
VB6で、非表示モジュール(?)の...
-
コンパイルするときに、ファイ...
-
C#のクラスをVB.netで使用したい!
-
VB.NETでActiveX(OCXファイル)作成
-
VC++でexeファイルが作成できま...
-
同じソースコードなのにバイナ...
-
VS2010 ProductVersion 変更
-
プリコンパイル?
-
VC++ 2005 Intellisenseを更新....
-
他の.CPPファイルに定義した関...
-
Visual Stadio2008 Releaseビル...
-
Visual Studioを使ったフォーム...
-
【C#】exeファイルに複数アイコ...
-
VB6 exeファイルのプロパティの...
-
コンパイルエラー「include フ...
-
関数がDLLファイル内に見つかり...
おすすめ情報