• ベストアンサー

VCでコンパイラ実行時に警告を出す方法

VCで #error ... とすると、コンパイルを失敗させて、エラーメッセージを出せますが、コンパイルは継続するが、メッセージだけは出すような方法は無いのでしょうか。 #ifndef USE_FUNC_A #warning この設定だとここの機能は使えません #endif こんな感じのことができないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

#pragma message( "hi there." )

qwertfk
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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はありません。 ご存知の方がいましたら、問題の解決方法をご教授くださいよろしくお願いします。

  • VC++6.0のプロジェクトをVC++2005Expressで動かしたいがエラーが出まくってしまいます。

    VC++6.0のプロジェクトをVC++2005Expressで動かしたいのですが エラーが出まくってしまいます。 VC++6.0では正常にコンパイル終了するものがexpressだと、 ・・・string.h(135) : warning C4003: マクロ '__DEFINE_CPP_OVERLOAD_STANDARD_FUNC_0_1_EX' に指定された実引数の数が少なすぎます。 とか、 ・・・string.h(135) : error C2065: '_string' : 定義されていない識別子です。 とか、 ・・・string.h(135) : error C2275: '_locale_t' : この型は演算子として使用できません とかです。string.hなど、触ったこともないのですが、 express用に編集が必要なのでしょうか? ちなみに PlatformSDK などはインストールして、include,exectable,library ディレクトリなどのパスも通しています。 何か良い方法を教えてください。お願いします。

  • C++/CLIで、アンマネージC++のDLLを使用する方法

    こんにちは。 C++/CLIのプログラムで、アンマネージC++のDLLを使用したいと考えています。 ネット上をいろいろ調べたのですが、具体的な手段がわかりません。 見よう見まねで以下のようにサンプルを作成したのですが、コンパイルすら通る状況になりません。 かなり基本的な問題がありそうで申し訳ないのですが、下記の問題点を教えていただけないでしょうか。 また、参考になりそうなサイトなどありましたら教えていただけると大変助かります。 ■アンマネージC++のDLL VC++6.0で、以下のように、単にデバッグ文字列を書き出すだけのDLL関数を作成しました。 (このDLLが使用できることは他のVC++6.0プロジェクトで確認済みです) /*-----Func.h-----*/ #ifndef __FUNC_H__ #define __FUNC_H__ AFX_EXT_CLASS void WINAPI ShowMessage(); #endif //__FUNC_H__ /*-----Func.cpp-----*/ #include "StdAfx.h" #include "Func.h" #include <stdio.h> void WINAPI ShowMessage() { CString str = "This is The Message from DLL Func!\n"; OutputDebugString(str); } ■C++/CLI でのDLL使用 Visual Studio2008にて、C++のCLRプロジェクトを作成して、以下のようにDLLを使用する準備を行いました。 1.ソリューションエクスプローラのヘッダフォルダに、Func.hを追加 2.プロジェクトのフォルダに、上記で作成したFuncのDLLとLIBファイルを置く。 3.プロジェクトの「プロパティ > C/C++ > プリプロセッサ > プリプロセッサの定義」に、"_AFXDLL"を追加 4.mainクラスのソースに以下を記述 /*----------*/ using namespace System; #include "Func.h" #using "ManagedDllApp.dll" int main() { ShowMessage(); return 0; } /*----------*/ この状態でコンパイルすると、 「エラー 3 error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。 d:\xxx\Func.h 4 Console 」等、Func.h周りで複数のエラーが出ます。 また、Func.hをインポートしないでコンパイルすると、 「エラー 3 fatal error C1113: #using が 'd:\xxx\manageddllapp.dll' で失敗しました。 」と、Dllでエラーが出ます。 よろしくお願いいたします。

  • 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つぐらい出てきます。 どうやらヘッダファイルを読み込めていないようです。 インクルードの書式が間違っているのでしょうか?

  • VC++でコンパイルできてg++でコンパイルできない

    VC++6.0でコーディングしてコンパイル→実行できたのでLinuxにソースを移してg++でコンパイルしてみました。ところがコンパイルで (中略) InFunction 'App::App[not-in-charge]()' undefined reference to 'MyClass::MyClass[in-charge]()' と言うメッセージが表示されコンパイルできません。 ソースを簡単に書くと、 /***** main.cpp *****/ #include "App.h" App app; int main() { } /***** App.h *****/ #inndef __APP_H_ #define __APP_H_ #include "MyClass.h" class App { MyClass *obj; public: App(); }; #endif /***** App.cpp *****/ #include "App.h" App::App() { obj = new MyClass(); } /***** MyClass.h *****/ #ifndef __MYCLASS_H_ #define __MYCLASS_H_ class MyClass { public: MyClass(); } #endif /***** MyClass.cpp *****/ #include "MyClass.h" MyClass:MyClass(){} と言った具合です。エラーメッセージはAppがMyClassのコンストラクタがどういったものか判らない旨を通知しているのだと思うのですが#includeはきちんと行われているように見られます。 コンパイル順かとも考え g++ main.cpp App.cpp MyClass.cpp g++ main.cpp MyClass.cpp App.cpp と試してみましたが同様の現象です。凡ミスかとは思うのですがなかなか客観的に見られず困っています。

  • const の使い方

    お世話になります。 VC5.0からVC2005.NETにソフトの移植をしているのですが、 その際、const の使い方で混乱しております。 環境:WinXP、VC2005.NET 以下のコードをビルドするとコンパイルエラーが出てしまいます。 ネットで検索しても、混乱中の上自分のケースに当てはまっているのか どうかさえも怪しい状態でして・・・ --コード-- #include "stdafx.h" class A { public: void func( const int*& a ); }; void A::func( const int*& a ) { return; } int _tmain(int argc, _TCHAR* argv[]) { int *a; A CA; CA.func( a ); ←※ここでエラー return 0; } --ここまで-- --エラー-- error C2664: 'A::func' : 1 番目の引数を 'int *' から 'const int *&' に変換できません。(新しい機能 ; ヘルプを参照) --ここまで-- 基本的なことですがご教授願います。

  • VC++のバグ?

    次のコードがコンパイルエラーとなってしまいます。 #include<vector> class foo:public std::vector<int>{ public: void clear(){ std::vector<int>::clear(); } }; VC6のSP2ではエラーになるんですが Linuxのgccでは全く問題なく動いたんです VC++のエラー?gccの拡張機能? .NETでは動くとか? どうなんでしょう? まあ、 using std::vector; や typedef std::vector<int> bar; とかすると回避可能なんですが…

  • VC++2005ExpressEditionでサンプルプログラムが動かない

     Visual C++ 2005 Express Editionを使用しています.コンパイル時にエラーが出て困っています.どなたか解決法をご教授ください.  「猫でもわかるネットワークプログラミング」という本に載っているサンプルプログラムをコンパイルしようとすると,エラーが出ます(下のアドレス(*1)の『PDFで試し読み』に該当プログラムがあります).  とりあえず少しずつ実行しようと,サンプルプログラムの冒頭の16行目まで書いてコンパイル・実行すると,完全に意図した動きをしました.しかし,21行目まで書いてコンパイルすると,次のエラーが出ます(ファイル名は net.cpp ). vvvvvvvvvvvv 1>c:\***\net.cpp(16) : warning C4996: 'gets' が古い形式として宣言されました。 1> c:\program files\microsoft visual studio 8\vc\include\stdio.h(270) : 'gets' の宣言を確認してください。 1> メッセージ: 'This function or variable may be unsafe. Consider using gets_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.' 1>リンクしています... 1>net.obj : error LNK2001: 外部シンボル "__imp__InternetOpenW@20" は未解決です。 1>C:\***\Debug\net.exe : fatal error LNK1120: 外部参照 1 が未解決です。 1>ビルドログは "file://c:\***\BuildLog.htm" に保存されました。 1>net - エラー 2、警告 1 ^^^^^^^^^^^^  一文を加えた途端にエラーとなったので困惑しています.何かVC++の設定が悪いのでしょうか.「新規作成->プロジェクト->Win32->Win32コンソールアプリケーション」とし,次に出てくる「Win32アプリケーション ウィザード」で「空のプロジェクト」にチェックを入れています. (*1) http://shop.sbcr.jp/bm_detail.asp?sku=4797323604

  • VC++2005でLAPACKを使用するとエラーが出る

    タイトルの通りなのですが,VC++2005でLAPACKを使用するとエラーが出て,困っています. vc\include\clapack.h(1486) : error C2144: 構文エラー : 'char' は ')' によって先行されなければなりません。 vc\include\clapack.h(1486) : error C2144: 構文エラー : 'char' は ';' によって先行されなければなりません。 vc\include\clapack.h(1486) : warning C4091: '' : 変数が何も宣言されていないときは、'char' の左辺を無視します。 vc\include\clapack.h(1486) : error C2143: 構文エラー : ';' が ',' の前にありません。 vc\include\clapack.h(1486) : error C2059: 構文エラー : ',' vc\include\clapack.h(1486) : error C2059: 構文エラー : ')' vc\include\clapack.h(2861) : error C2144: 構文エラー : 'char' は ')' によって先行されなければなりません。 vc\include\clapack.h(2861) : error C2144: 構文エラー : 'char' は ';' によって先行されなければなりません。 vc\include\clapack.h(2861) : warning C4091: '' : 変数が何も宣言されていないときは、'char' の左辺を無視します。 vc\include\clapack.h(2861) : error C2143: 構文エラー : ';' が ',' の前にありません。 vc\include\clapack.h(2861) : error C2059: 構文エラー : ',' vc\include\clapack.h(2861) : error C2059: 構文エラー : ')' 主にhttp://sakura.math.kyushu-u.ac.jp/wiki/index.php?%E8%A8%88%E7%AE%97%E6%A9%9F%E8%A8%AD%E5%AE%9A%2FCLAPACKを参考にして作成しているのですが・・・上手くいきません.詳しい方,ご教授お願い致します.

  • DirectX開発中のinclude ファイルを開けません。

    DirectX開発中に c:\documents and settings\a022\my documents\visual studio 2008\projects\map\map\stdafx.h(10) : fatal error C1083: include ファイルを開けません。'WinLib.h': No such file or directory MapModel.cpp 上のソースコードは、 #ifdef _MSC_VER // 警告の抑制 #pragma warning(disable: 4201) #pragma warning(disable: 4100) #pragma warning(disable: 4786) #endif #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x400 #endif #include <WinLib.h> ←ここがよめないらしい というエラーが出ます。 解決法がわかる方はお教えください。

このQ&Aのポイント
  • PX-M730F購入直後に発生した問題です。PDFファイルを印刷する際、3〜4ページ目から文字や図の一部が横に二重に印刷されたり、ぼやけたり、ピンクっぽい影ができることがあります。
  • ヘッドクリーニングとヘッド位置調整を行っても問題が解消されませんでした。
  • EPSON社製品に関する質問です。
回答を見る