おっちょこちょい

技術立国日本を支える一技術者として、技術のウンチクや技術者の待遇に関するグチを垂れ流しています。留学や海外出張時の経験を元に、日本と外国の歴史的・文化的な違いに関する経験と所感を述べます。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

VS2005備忘録-C2143

とあるC++言語のソースコード,hoge.cppをC言語用にするために,hoge.cにリネームした時のこと.
何もC++言語としての機能は使用していなかったので,リネームするだけで問題ないと思っていました.

しかし,何度やっても
error C2143: 構文エラー : ';' が '型' の前にありません。
というエラーが出て,コンパイルできない.

元のコードはこんな感じでした.
void hoge(int i) {
  printf("%d",i);
  int j = i+1;
  printf("%d, j);
}

このところ,C++言語ばかりしていたのですっかり忘れていましたが,変数宣言が途中にあるとC言語ではエラーになるのでしたね.うっかりしていました.次のように順番を入れ替えたら,エラーはなくなりました.
void hoge(int i) {
  int j = i+1;
  printf("%d",i);
  printf("%d, j);
}

ちなみに,上のエラーはVS2005で起こりました.

スポンサーサイト

PageTop

IVF備忘録-古いFORTRAN77プログラムをコンパイルする

今でも技術屋の世界では,20年以上前のFORTRAN77で書かれたコードが現役だったりします.

ところが,コードが作られた時比べて,OSやコンパイラ,果てはコード作成時のポリシーも変化しています.古いコードを最近のコンパイラでコンパイルすると,しばしばエラーが発生します.

これまで,Intel Visual Fortran(IVF)を使って古~いコードをコンパイルしたとき,次のオプションをデフォルトから変更するとうまくいったことが多かったです.
プロジェクトのプロパティから,Fortran->Diagnostics
1. "General Interface Blocks"を"No"にする
2. "Check Routine Interface"を"No"にする

それぞれが意味する内容は面倒なので省略します.

ただし,いずれもデバッグをする上では欠かせない機能を無効にします.したがって,適切に動作することが保障されているコードに限定して適用することを強くお勧めします.間違っても,自分で書いた新しいコードが,これらを無効にしないと動かない,なんてことがないように!

PageTop

Windows Media PlayerでMPEG-2

先日,後輩からもらったMPEG-2のホームビデオを見ようとしたら,Windows Media Playerで再生できない!

先日,家のノートPCを再インストールしたばかりでした.もともとノートPCには,MPEG-2のコーデックを含むDVD再生ソフトが付属していました.しかし,当然のごとく?,そのソフトをインストールするためのCDは紛失してしまい,すぐにはビデオを見れない.

方法として,
1. コーデックをダウンロード購入する.
2. ノートPCのサポートに連絡する.
3. フリーソフトで対応する.
を考えました.手間はかかりますが,お金がかからず,休日でもすぐに利用できる3.にトライしました.

手順としては,
1. MpegDecoder012.msiをダウンロードして,インストール
2. 再起動
3. AC3Filterをダウンロードして,インストール
で終わりです.

めでたし,めでたし.

PageTop

VS2005備忘録-スタート ページ

VS2005(Visual Studio 2005)を新PCにインストールしたら,毎回起動時にスタート ページが表れて,ただでさえ起動の遅いVS2005がより遅くなる.

ツール->オプション
から
環境->スタートアップ->スタートアップ時

「スタート ページの表示」
から
「空の環境の表示」
に変更して使ってます.これで,少しは起動が速くなった.

それにしても,なんで「スタート」と「ページ」の間に半角スペースがあるのだろう?
というのが気になったら,プログラムをする仕事の職業病ではなかろうか...

PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。