- 締切済み
VS6.0 と OS の関係
VS6.0 でないと動かないライブラリを使用して課題がでました。 学校である程度できた課題を連休を利用して自宅のPCで制作する事にしました。 ですが、問題が発生しました。 持ち歩きしてるノートPCだと正常に動くのに、 自宅のPCだとインクルードエラーが発生します。 最初は文法エラーだと思い何回も見直しやり直しをしましたが、 それといったおかしな場所は見つかりませんでした。 それにノートPCから自宅PCに写して何も手を加えてない場合正常にうごきました。 それで、一文字だけ書き換えたところエラーが発生しました。 どうやらフォントとかのエディタに問題があるのではないかと思います。 なにせいつも使ってるのは.NETで VS6.0って古いものですからどうすればよいか… どうか助けてくださいお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- MrBan
- ベストアンサー率53% (331/615)
エラーを見る限り、先行ヘッダのインクルードに失敗して定義が見つからないようなので、学校では通ったということなら、このあたりが原因と思われます。 ・家と学校で、使っているDirectXの版が不一致 ・インクルードパスの設定などが異なり、参照順番が違う > .(ピリオド)ひとつだけ消して自宅マシンで再入力しました。 -- snip -- > それにノートPCから自宅PCに写して何も手を > 加えてない場合正常にうごきました。 書き換えを行う前は単に学校で作ったバイナリが残っていたためそのまま起動でき、修正をしたことにより自宅ではじめてビルドが行われ、エラーが出たのではないでしょうか。 手元に、学校から持ってきたばかりのオリジナルが残っていれば、再検証もできそうですが。 > ノートPCから自宅マシンにコピー > ▼ > テストとして一度手をつけないでビルド > ▼ > 問題なく起動した この時点で、クリーンビルドをしたわけでないのですね。 対象のファイルは、実際にビルドされていましたか。 アウトプットの出力結果が残っていればいいのですが。 > あくまで思い込みですが、Adobeなど特殊なフォントも入ってますので。 これはありえません。 システムのフォントが変わろうが、テキストであるソースのコンパイルには影響しません。 このコンパイルエラーとはまず無関係です。 現状推測できる範囲では、このあたりを順に確認してもらうしかなさそうです。 ・学校と、家の PlatformSDKやDirectXのバージョン。 ・学校と、家の VC6の設定。 特に、VC6ではインクルードパスの設定順を変えないと、マシンに最新の物を入れても、古いデフォルトの PlatformSDKやDirectXを参照してしまいます。 # 根拠はないですが、非常にありがちなトラブルで、 # 一番怪しいのはこれだと思います。 また、VC6はマイクロソフトのサポートももう切れてますので、最新過ぎるこれらのライブラリはVC6ではうまく動かないものもあります。(これは2004なら多分平気なはず 力技だと、LPDIRECTXFILEDATA の定義ヘッダ (手元だとdxfile.h)など足りないといわれるものを、 順次追加してみるというのもアリかも知れません。
- MrBan
- ベストアンサー率53% (331/615)
> VS6.0 でないと動かないライブラリを使用して課題がでました。 このライブラリは、どんな形式ですか。 ソース提供ですか、静的/動的ライブラリですか。 > 自宅のPCだとインクルードエラーが発生します。 エラー内容をできるだけ加工せずに提示してください。 また、エラーが発生するのはライブラリのビルドですか。 ライブラリを使うプログラムのビルドですか。 >それで、一文字だけ書き換えたところエラーが発生しました。 書き換えた内容と方法を提示してください。 > それにノートPCから自宅PCに写して何も手を > 加えてない場合正常にうごきました。 バイナリが残っていた等の可能性は考えられませんか。 操作手順や状況が不明確です。 コピー時点でバイナリが残っていたりしましたか? > どうやらフォントとかのエディタに問題があるのではないかと思います。 思った根拠は何ですか。(書かれた情報だけでは特定しがたい。 もし仮に、本当に文字コード等のせいであれば、改行がCRLFでないとか、文字がSJIS以外になっているなども考えられなくはありませんが、情報不足で憶測の域を出ません。 # 本当に単にエディタの問題だけであれば、 # ソースは単なるテキストファイルですから、 # それこそメモ帳でも編集できます。 書かれている話だけでは、VC6に対応していない コードを渡して混乱したようにも見えます。 具体的に何をしたらどうなったのかが見えてきません。
補足
> VS6.0 でないと動かないライブラリを使用して課題がでました。 ライブラリとだけ知らされて 静的・動的 ソース提供 などは知らされていませんね。 > 自宅のPCだとインクルードエラーが発生します。 --------------------構成: NmBase4 - Win32 Debug-------------------- コンパイル中... GameMain.cpp c:\...\d3dfile.h(53) : error C2061: 構文エラー : 識別子 'LPDIRECTXFILEDATA' がシンタックスエラーを起こしました。 c:\...\d3dfile.h(108) : error C2061: 構文エラー : 識別子 'LPDIRECTXFILEDATA' がシンタックスエラーを起こしました。 c:\...\d3dfile.h(110) : error C2061: 構文エラー : 識別子 'LPDIRECTXFILEDATA' がシンタックスエラーを起こしました。 c:\program files\microsoft directx 9.0 sdk (october 2004)\include\dsound.h(305) : error C2146: 構文エラー : ';' が、識別子 'dwReserved1' の前に必要です。 c:\program files\microsoft directx 9.0 sdk (october 2004)\include\dsound.h(305) : error C2501: 'DWORD_PTR' : 識別名を宣言するのに、型が指定されていません。 c:\program files\microsoft directx 9.0 sdk (october 2004)\include\dsound.h(305) : error C2501: 'dwReserved1' : 識別名を宣言するのに、型が指定されていません。 c:\program files\microsoft directx 9.0 sdk (october 2004)\include\dsound.h(306) : error C2146: 構文エラー : ';' が、識別子 'dwReserved2' の前に必要です。 c:\program files\microsoft directx 9.0 sdk (october 2004)\include\dsound.h(306) : error C2501: 'DWORD_PTR' : 識別名を宣言するのに、型が指定されていません。 c:\program files\microsoft directx 9.0 sdk (october 2004)\include\dsound.h(306) : error C2501: 'dwReserved2' : 識別名を宣言するのに、型が指定されていません。 cl.exe の実行エラー >それで、一文字だけ書き換えたところエラーが発生しました。 これが書き換えた一行です。 v[3].p = D3DXVECTOR3 (0.0f, 1.5f, 0.0f); .(ピリオド)ひとつだけ消して自宅マシンで再入力しました。 > それにノートPCから自宅PCに写して何も手を > 加えてない場合正常にうごきました。 バイナリといわれてもそこまでは知らないです。 ただ作業の履歴としましては ノートPCから自宅マシンにコピー ▼ テストとして一度手をつけないでビルド ▼ 問題なく起動した ▼ 自宅マシンで1文字書き換えてビルド ▼ エラーが9つ発生! > どうやらフォントとかのエディタに問題があるのではないかと思います。 あくまで思い込みですが、Adobeなど特殊なフォントも入ってますので。 >具体的に何をしたらどうなったのかが見えてきません。 たぶん私もそう思います。ですが事実ですので。
お礼
ありがとうございました。 あえて作者の先生と相談してみます。