- ベストアンサー
BC++からVC++への移行方法とは?問題はある?
επιστημη(@episteme)の回答
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
> 動きそうですが、クラス定義のヘッダーファイル > が無くても動くのが不思議なのです。 #include <xxx.h> していながら xxx.h が なかったらコンパイルエラーになります。 コンパイルできたのなら、どこかに必ずあるはずです。 > MFC のウイザードの書き込む番号の > 意味が分からないのです。 わからなくてかまいません。 #if !defined(XXXX) #define YYYY XXXX と YYYY が'同じ'でさえあればいい。
関連するQ&A
- VC++6.0からVC++.NET2005へ移植
VC++6.0で作成したプログラムをVC++.NET2005に移植しました。 ビルドを行うと『fatal error LNK1104:ファイル'mfc42.lib'を開くことができません。』のエラーが出てしまいます。 ソリューションのプロパティを見てもどこで「mfc42.lib」の参照を定義しているのか分かりません。 どこで「mfc42.lib」の参照を定義しているのか教えてください。また、対策を教えてください。
- ベストアンサー
- C・C++・C#
- VC++2010の「#include <」
VC++ で、他人の作ったソースコードをビルドして実行してみています。 (WinPcapのデベロッパ向けのライブラリを使った、サンプルプログラムです。) VC++自体、あまり理解が深くないのですが、 「#include <」まで書くと、「ヘッダファイル名が表示される」プロジェクトと、「そうではない」プロジェクトがあります。 「そうではない」方のプロジェクトだと、ビルド時にincludeするライブラリが足りないとか、そんな感じのエラーが表示されます。 ぱっと見の違いは、「ヘッダファイル名が表示される」プロジェクトの場合は、 ソリューションエクスプローラに、「外部依存関係」というフォルダのショートカットがあり、ライブラリがどっさりあります。 「そうではない」プロジェクトについても、「#include <」で、ヘッダファイルを表示してくれるようにしたいのですが、どの様にすればよいのでしょうか?★ プロジェクトのプロパティの、 C++>プリプロセッサ>プリプロセッサの定義 リンカー>入力>追加の依存ファイル はどちらのソースも同じにしたのですが…。
- ベストアンサー
- C・C++・C#
- VC++6.0でのインクルード
VC++初心者です。 環境はVC++ on win2kなのですが、 ヘッダファイルを別のファイルにしてコンパイルしたいのですが、できません。 test.cppの中身 #include <iostream> #include <string> #include <stdio> ・・・* #include "kneko.h" using namespace std; int main() { kneko x("tama"); x.naku(); } kneko.hの中身 #ifndef __kneko_h #define __kneko_h class kneko { string name; public: kneko(){}; kneko(string n){ name=n; } void setname(string n){ name=n; } void naku() const { cout <<"My name is"<<"name"<<"."endl; } }; #endif この2つを同じディレクトリに入れて、 ビルド→コンパイルすると、*のところで 「インクルードファイルがオープンできません。」 というエラーが出ます。 ためしに*の行を削除すると、エラーが8つぐらい出てきます。 どうやらヘッダファイルを読み込めていないようです。 インクルードの書式が間違っているのでしょうか?
- ベストアンサー
- C・C++・C#
- error C2065: error C2057: が出てしまいます。
VC++6.0 ダイアログベースです。 自動で作られたダイアログのヘッダファイルを 自作で作ったクラスのヘッダファイルでインクルードした所 下記のようなエラーが出てしまいました。 error C2065: 'IDD_MY_DIALOG' : 定義されていない識別子です。 error C2057: 定数式が必要です。 まだ自作で作ったクラスはクラスになる前のインクルードのみ書かれた 状態ですが・・・。 //自作する予定のヘッダファイル(まだインクルードのみ) #pragma once #include "DLGTEST.h"//自動で作られたダイアログ //自作のファイル(まだインクルードのみ) #include "stdafx.h" #include "gakusei.h" 自動で作られたファイルをインクルードすることは出来ないのでしょうか? もしインクルードできるならどのようにしたらインクルードできるのでしょうか? オンラインマニュアルで調べたのですが、良くわかりませんでした。 /**オンラインマニュアルより、解決方法**/ stdafx.h からの VC_EXTRALEAN 行を定義する 1 つソリューションが#を削除できます。 これは、通信とレジストリとほかのエリアの MFC によってプロジェクトで直接が使用されない Win32 API を保持します。 含められない代替は、#のセットでの行が「#が VC_EXTRALEAN を定義するのを」置き換えるために、 上記で一覧された行を定義しこと、そしてハードウェアがそれその#が定義する削除によって選択的に登録されこと、です。 たとえば 通信 API が呼び出される場合、#がすべて上記で stdafx.h に「#が NOCOMM を定義すると、」行の以外、 一覧された行を定義するのを持つ可能性があります。
- ベストアンサー
- C・C++・C#
- VC++のインクルード方法について
VC++2008にて他フォルダファイルをincludeしたいと思いましたが ディレクトリが異なる為に、 4>d:\vss\xlmap\lib\fmfc\fmDbfFile.h(6) : fatal error C1083: include ファイルを開けません。'shapefil.h': No such file or directory と、エラーが出てしまい、コンパイルができません。 どのようにヘッダーファイルをincludeすればよいのでしょうか? お力添えして頂けたら幸いです。 宜しくお願いします。
- ベストアンサー
- C・C++・C#
- VC++2010で作ったアプリケーション
最近VC++でアプリケーションを作りました。 VC++のMFCを使ってです。 簡単なカレンダーなのですが、・・・ そのカレンダーのプログラムをコンパイルするとexeファイルができ、 そのexeファイルをクリックすると、確かに起動し、アプリケーションを使うことができるのですが、 問題はここからで、 このファイル、自分のパソコン上では動くのですが、 ほかの人のパソコン上だと「コンポーネントが見つかりません、mfc100,dllが見つかりません」 とか言う警告が出てしまうのです。 なぜ他のパソコンでは起動できないのですか? もしかして、作ったアプリケーションは、exeファイルだけあってもだめなのでしょうか? よろしく願います。
- ベストアンサー
- その他(インターネット・Webサービス)
- VC6.0からVC7.0への移植
VisualStudioでプログラムしています。 このたび、VC6.0で作ったプログラムをVC7.0(.NET?)に移植しようとしたところ、 「MSVCIRTD.LIBがありません」とエラーが出たので、 Microsoft Visual Studio\VC98\LibにあったMSVCIRTD.LIBをコピーしてコンパイルを通したのですが、 今度はvc60.pdbが見つからないというwarningが出てしまいます。 warningなので無視して実行しようとすると、 強制終了してしまいます。 VC6.0で作ったプログラムのファイル構成と比べると、 確かにvc70.pdbはあるのですが、vc60.pdbはありません。 ご存知の方がいましたら、問題の解決方法をご教授くださいよろしくお願いします。
- ベストアンサー
- C・C++・C#
- VC++2010を覚えたい(極めたいではない)
ExcelVBAで実験データを整理していますが、Excelのみでしか使えない等の問題からVC++2010をそこそこ使えるようになりたいのです(極めようとまでは思っていません)。先日もここで質問させていただいたのですが、メッセージボックスを出したりファイル操作をしようとすると、知識不足のためコードが正しく書けずエラーばかり出て格闘しています(VBAだと、msgbox"こう書けば表示される" の一行で済むことをやるのに、かなり格闘します)。 そこで、これら基本動作を完全に使いこなせるようにするために勉強をしたいのですが、何について勉強すればいいのかよくわかりません。どんな本を買って何を勉強すべきでしょうか?いい本があったら教えてください。特にできるようになりたいことを下に書きます。 1 #include <stdio.h>とかのインクルードファイルを宣言する位置。 2 intやdouble等の変数宣言も、たまにエラーでできないことがある。 関数内では変数宣言の方法が違うのかな? String^ でどうして^がついたりつかなかったりするかわからない。 これでエラーとかよく出ます。^は大嫌い>< 3 メッセージボックスとかの表示。messageboxの前や後ろにshowとか::とかどうして必要か わからない。メッセージボックスに確認する変数の数値を出すのも難しい。 4 データファイルをいろいろ操作したい。データファイルはテキストデータのみ 5 グラフもVC++で書けるとうれしい。必要があるときだけでいい。 forやif等の制御構造、配列、ポインタ等はもう知っています。 これらができるようなるには、「クラス」とかを勉強するとわかるのでしょうか? クラスが何のことだかもわかりませんが。
- 締切済み
- C・C++・C#
- [VC][ATL] 'ImageList_Read'が定義されていない!というエラーになるのは?
VC++.NET 2002+WTL7.0で開発をしています。 アプリケーションウイザードでMFCアプリケーションを作成して、クラスの追加から「ATLのサポート」を追加します。そして、stdafx.hに #include "atlapp.h" #include "atlctrls.h" を記入すると 'ImageList_Read'が定義されていない というエラーになってしまいます。 とりあえずatlctrls.h内のエラー発生箇所をコメントアウトすることで対応しているのですが...どのようにしたらエラーがでないようにできるのでしょうか?よろしくお願いします。
- 締切済み
- C・C++・C#
お礼
ありがとうございます。 たとえば、 class B : public class CEeditView { } としたときの、クラスBをクラスウイザード でつくると、 そのときできる、ヘッダーファイルのなかには CFeditView の定義を書いたヘッダファイルが 見つからなかったので 最初の 変な番号が ヘッダーファイルのinclude の代わりかなと思ったのです。 どこかに、 #include .... があるのでね。 そのうちに、 見つかるとい言うことで、気楽に考えることに します。 ありがとうございました。