プロが教えるわが家の防犯対策術!

はじめまして。

今、web上に落ちてあるプログラムを自分のPCで動かそうとしているのですが、エラーがでまくりでどうしていいかわかりません。

web上にあるプログラムは、Cなのですが、
main(ac, av)
int ac;
char *av[];
{
int lev;/* level of line being processed */
int deg;
・・・・
のような表記なのです。
これを僕のVisual Studio .NETで動かそうとすると、
無数のエラーが出まして、(例えば、acが定義されていません、avが定義されていません、など)
どうすればいいかわかりません。
初めてac,avという表記も見ましたし。

.Netで動かす方法をどうしても教えてもらいたいです。どなたかお力をお貸しください。お願いします。

A 回答 (5件)

int main(int ac, char *av[]){



に直すといいんじゃないでしょうか
(元のはかなり古い表記法です)
    • good
    • 0
この回答へのお礼

ありがとうございます。

かなり古い表記法なのですか。だから新しいのでは動かないんですね。

では、

void
CheckIso(L, A, image, lineno)
tp_confmat L;
tp_axle *A;
tp_vertices image;
int lineno;

{
int i,
という表記で、Aが定義されていないだの、Lが定義されていないとかいうエラーもすべて、
CheckIso(tp_confmat L, tp_axle *A,....)
と書き直せばよいのすか?

お礼日時:2006/02/10 04:59

元のソースの表記は確かに古いですが、C言語としては正当な記法です。

予想ですが、C++としてコンパイルしようとしていませんか?

「C++はCのスーパーセットだ」という人がよくいますが、完全なガセネタですので、信用してはいけません。
このように、細部に関しては互換性がない部分がかなりあります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
僕が使っているのは、Visual C++.netでした。

おそらくボーランドからDLしてきてやれば、問題ないのでしょうが。。。

要するに、C++でコンパイルしている以上、書き直すしかC++ではコンパイルされないということなのでしょうか?

お礼日時:2006/02/10 15:50

>と書き直せばよいのすか?


そうですね、この際ですので直しておくと良いと思います。

試しに、古い表記法でコンパイルしてみたのですが
cl(ver.13)ではエラーがでませんでした。
エラーがでるのは別の原因なのかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

そうですね。
すべてのエラーが言葉の未定義ですので、おかしいなと思っていたのです。

しかしながら、1万行近くあるプログラムのすべてを書き直すのは、避けたいのですよね。
なにかほかにいい方法はないのでしょうか?
ちなみに、僕は、VC++.netを使ってます。

お礼日時:2006/02/10 15:52

> 要するに、C++でコンパイルしている以上、書き直すしかC++ではコンパイルされないということなのでしょうか?



C++でコンパイルするのであれば、書き直さざるを得ません。また、その場合には、関数の引数並びに関する記法だけでは済まないと思います。

それが既に実績のあるコードである場合、エンバグ等のリスクを冒してまで修正するがよいかどうかは、何ともいえません。元のプログラムがバージョンアップした場合には、その都度、同じ作業が発生することもあり得ます。

ちなみに、Visual C++.NETを使っていても、C言語としてコンパイルすることは可能です。普通は、拡張子を.cppや.ccではなく、.cにすればC言語として解釈されるはずです。
    • good
    • 0

>VC++.netを使ってます。


cl(ver.13)は、VC++.netのコンパイラです。

結局の処
Visual Studio.NET、でプロジェクトを作ると、C++プロジェクトになるということでうまくないということですね。
(昔は、拡張子が.c のファイルを開くと適当にプロジェクトを作ってくれたような記憶があるのですが、今は単なるエディタとして起動するみたい)
1つの方法としては、メイクファイルプロジェクトにすればいいみたいですけど、コマンドを登録してやる必要があるので、そんなことするぐらいなら、
コマンドプロンプトで
cl prog.c
した方が簡単です。
ぼけた回答ですみません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!