ベストアンサー Cには、include? C++には using? 2004/06/27 18:42 Cでは、インクルードで使うライブラリを選べるのですが、C++では、ライブラリを選べないのでしょうか? もし選べないと、小さなプログラムでも容量が大きくなるのではないでしょうか? みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー επιστημη(@episteme) ベストアンサー率46% (546/1184) 2004/06/27 20:11 回答No.1 > Cでは、インクルードで使うライブラリを選べるのですが このへんから勘違いなさっているようです。 #include でライブラリを選んでいるわけではありません。 さらに、 > C++では、ライブラリを選べないのでしょうか? C++にも#includeはありますよ (ライブラリを選ぶためのものではありませんが) 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発C・C++・C# 関連するQ&A C++のhppファイルをCでinclude 皆さんこんにちは。 C++で書かれたhppファイルを、 Cのプログラムの冒頭にてincludeしたいなと 思っているのですが、 そうゆう事って、ざっくり可能なものでしょうか? キーワードが悪いのか、 すっきりと、方針が見つけることができませんでした。 CでC++ファイルのincludeが可能な場合、 大体の方針など教えていただけるとありがたいです。 C++のインクルードファイル 私自身はCについてはビギナーの域を出ないのですが、ある専門家が作ってダウンロードして使用するソースプログラムがありました。 解凍してボーランド(現Embarcadero?)BCC32でコンパイルしたところ、”インクルードファイルがない”とのことでした。プログラムの冒頭部のincludeは以下のようになっています。 #include <math.h> #include <stdio.h> #include <process.h> #include <string.h> #include <conio.h> #include <stdlib.h> #include "../Allocation.h" #include "../Allocation.h" #include "../Headers.h" コンパイラが提供しているようなものと、自前で用意するものがあるのかなと思いますが。 特に../ が付いているものはソースよりも1つ上のフォルダを指定しているように思います。 ダウンロードして解凍しただけなのでそれ以外の手の施しようがないのですが、どのように考えるべきでしょうか。提供した人に聞くのが一番だと思いますが。これだけで動く、ということになっています。よろしくお願いします。 VC++2010の「#include <」 VC++ で、他人の作ったソースコードをビルドして実行してみています。 (WinPcapのデベロッパ向けのライブラリを使った、サンプルプログラムです。) VC++自体、あまり理解が深くないのですが、 「#include <」まで書くと、「ヘッダファイル名が表示される」プロジェクトと、「そうではない」プロジェクトがあります。 「そうではない」方のプロジェクトだと、ビルド時にincludeするライブラリが足りないとか、そんな感じのエラーが表示されます。 ぱっと見の違いは、「ヘッダファイル名が表示される」プロジェクトの場合は、 ソリューションエクスプローラに、「外部依存関係」というフォルダのショートカットがあり、ライブラリがどっさりあります。 「そうではない」プロジェクトについても、「#include <」で、ヘッダファイルを表示してくれるようにしたいのですが、どの様にすればよいのでしょうか?★ プロジェクトのプロパティの、 C++>プリプロセッサ>プリプロセッサの定義 リンカー>入力>追加の依存ファイル はどちらのソースも同じにしたのですが…。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム include<wtsapi32.h>でエラーがでる .netを使ってWTSQurySessionInformationのAPIを使う C言語プログラムを作ろうとしています。 ライブラリーにwtsapi32.lib ヘッダーにwtsapi32.h が必要と書いてあったので ライブラリーをインポートし、ヘッダーにPSDKの最新のものをいれましたが、エラーがでます。 c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\WtsApi32.h(109) : error C2061:構文エラー : 識別子 'LPWSTR といったものがたくさんエラーがでます、どうすれば 解決できるでしょうか。調べてもわからないため困っています。OSはXPを使ってます。 C言語の電卓におけるincludeについて C言語の電卓におけるincludeについて C言語の電卓におけるincludeについて質問です。 プログラミング言語C第2版 ANSI規格準拠 B.W.カーニハン・D.M.リッチー著 質問1. 4章にある電卓プログラムですが、getch.cがcalc.hをincludeしないのはなぜですか? 解説よろしくお願いします calc.h #difine NUMBER '0' main.c #include <stdio.h> #include <stdlib.h> #include "calc.h" #difine MAXOP 100 getop.c #include <stdio.h> #include <ctype.h> #include "calc.h" stack.c #include <stdio.h> #include "calc.h" #difine MAXVAL 100 getch.c #include <stdio.h> 質問2. 第4章までしか読んでいませんが、「関数で返さない値はゴミ(garbage)になる」と書いていました。 関数で返さない値は、関数から抜けると消えるものと思っていたので驚きました。 関数で返さない値の後処理はどうすればいいのですか? 質問3. 外部変数と静的変数の違いは? ―メモ― 局所変数 自動変数 main内の変数 int x; static int x; 永久的なメモリが与えられることを意味する 外部変数 main外の変数 static int x; 静的変数 関数内の変数 static int x; レジスタ変数 変数をレジスタに置く register int x; 以上、有識者の方、教えてくださいmm 2重の(?)の#include プログラム例を見ていたら ----- main.c ----- #include aaa.h (1) ----- aaa.h ----- #include aaa.h (2) とありました。 (1)はわかるのですが、 aaa.hで、また(2)、自分自身を#includeするのはなぜか 教えてください。 Visual Studioのインクルードについて DirectXとc++でプログラミングしている初心者なのですが、 フリーのライブラリを使おうと思い調べていると 「インクルードディレクトリ追加」「ライブラリディレクトリ追加」 のような文面を見てDirectxSDKを入れた頃を思い出しまた。 そこでふと思ったのですが、DirectxSDKの時もそうでしたが 結局これは何をしているのでしょうか。 インクルードディレクトリにはヘッダーファイル的な何か。 ライブラリディレクトリには中身(ライブラリ)が入っていて そのパスを指定することによってコンパイラ側で関数を使用できるようになる。 ということなのでしょうか? また他のPCで作業するためには、同じディレクトリに同じ物がないと実行できませんよね? それなら、例えばUSBで持ち歩いて他のPCでといった場合は もうプロジェクトフォルダ内に該当ライブラリの\includeと\libを移動させておいて そのパスを指定しておけばどこでも実行できるってことなのでしょうか? ご教示よろしくお願いします。 ビルドエラー(C1083)について c++初心者です。 先日学校の課題用に配布された画像処理プログラム(C++)を実行しようとしたのですが、 ビルドエラーが出てしまい、色々調べてみたのですが解決法がわかりません。 エラーの内容は、 fatal error C1083: include ファイルを開けません。'cv.h': No such file or directory というものです。 使用しているのは Microsoft visual c++ 2008 express edition OpenCV です。 また、インクルードファイルには ・C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\ml\include C:\Program Files\OpenCV\otherlibs\highgui ライブラリファイルには ・C:\Program Files\OpenCV\lib を追加し、pathにも ;C:\Program Files\OpenCV\bin\ が追加してあります。 プログラム上の問題ではなく申し訳ないのですが、よろしくお願いします。 OSはvistaです。 C言語の#includeについて ただいまC言語の勉強を始めたばかりなのですが、 疑問に思った点があったので質問させていただきます。参考書やweb上で#includeについて調べると、 <stdio.h>なら、<stdio.h>に書かれている内容を含める、<stdio.h>にはC言語を使う上で標準的に使われるものが色々書かれている、例えば、printfを使うための色々な設定であるということで一度は理解できたのですが、「外したらどうなるのだろう」と思い、 外してみたところ、先ほどの状態となんら変わりなく 動作しました。ここで自分がやったプログラムは 初歩的な文字列表示(printf),変数を使った計算(int)です。この場合が別に#includeを最初に記述しなくても良かったパターンだと思うのですが、 では一体どういった時に記述しないと動作しなくなるといった現象が起こるのでしょうか? また、記述しなくてもいい場合はどういった時なのでしょうか?私のレベルは本当に始めたばかりの初心者です。どうぞご教授お願いいたします。 Visual C++でのfelicaプログラム SONYのサイトで、SDK for NFC Starter Kit が公開されているので、ためしにFelicaカードの読み取りプログラムを作ってみようと思っています。 サンプルとして、C++が載っていましたので、Visual C++ 2010で動かそうとしましたが、 「error LNK2019: 未解決の外部シンボル __imp__initialize_library が関数 _wmain で参照されました」と表示されます。 プロジェクトのプロパティで、C/C++ → 全般 → 追加のインクルードディレクトリ もSDKのincludeのディレクトリを指定しましたし、 同じく リンカー → 全般 → 追加のライブラリディレクトリ もSDKのlibのディレクトリを指定しました。 エラーを解決する方法を教えてください。 よろしくお願いします。 なお、プログラムは簡単な下記のものでもエラーがでます。 #include "stdafx.h" #include <cstdio> #include <cstdlib> #include "felica.h" int _tmain(int argc, _TCHAR* argv[]) { initialize_library(); return 0; } C#でC++のDllを使用する方法について 下記のプログラムは、MSのダイナミックライブラリの作成と使用(C++)を 参考にして作成したライブラリと、その使用側の プログラムコードです。 共に、VS2013のC++で作成しています。 Q1) プログラムの作成をVS2013のC#に変更しまして、同様なプログラムが出来ますか? 注)下記のライブラリの部分は、そのまま使用して。 お手数ですが、宜しくお願いします。 ライブラリ(Releaseフォルダーの中): MathFuncsDll.dll MathFuncsDll.exp MathFuncsDll.lib MathFuncsDll.pdb 使用側プログラムコード(VS2013のC++) //Project:c:\wk_VS2013\TT_DllLibrary\TT_DllLibrary.sln #include "stdafx.h" #include <conio.h> //MSのダイナミックライブラリの作成と使用(C++)で作成したライブラリのヘッダー #include "Release\\MathFuncsDll.h" //using namespace std; #pragma comment( lib, "Release\\MathFuncsDll.lib" ) //========================== int _tmain(int argc, _TCHAR* argv[]){ //使い分け? //int main(){ double ans, a, b; a = 1.2; b = 5.6; ans=MathFuncs::MyMathFuncs::Add(a,b); fprintf(stdout, "a=%lf b=%lf ans=%lf です\n", a,b,ans); int aa = _getch(); return 0; } #include "****.h"の呼び出し箇所 お世話になります、fujitomoです。 今回お聞きしたいことは、それほど急を要しているわけではなく、フッと疑問に思い、気になったので質問させて頂きました。 質問させて頂きたい事は、Visual C++のプログラムで自分で作成したインクルードファイルを読み出すコード #include "*****.h" を読み出したいプログラム内のソースファイルの一番上に書くべきか、インクルードファイルの一番上に書くべきか ということです。 当然、読み出したいプログラム内でメンバ変数として呼び出したいときなどはインクルードファイルに書きますが、それ以外で、呼び出したインクルードファイル内のある関数を使いたいいった場合です。 どちらにインクルードファイルの呼び出しを記述しても動作しますし、私は前までインクルードファイルの呼び出しはその呼び出したいプログラムのインクルードファイルに書くものだと思っていたのですが、VisualC++のMFCのプログラムなどを見るとソースファイルの一番上に書いています。 どちらでもいいのかもしれませんが、参考となる意見がありましたらよろしくお願い致します。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム VBに、Cのincludeのようなものありますか? Cでは、 include<ファイル名.h> のように、自作の定義ファイルを読み込み事が出来ますが、 Visual BASICでは、できないでしょうか? includeファイルが開けない 学校の課題用に配布されたプログラム(C++)を実行しようとしたのですが、 ビルドエラーが出てしまい、この解決方法がwebで調べてみてもわかりません。 当方、C++は初めてなのであまり詳しいことはわからないため、 こちらで質問しました。 エラーの内容は、 fatal error C1083: include ファイルを開けません。'fstream.h': No such file or directory というものです。 エラーが出た部分は #include "fstream.h" というふうになっているのですが、 この部分をいじっても解決されません。 また、プログラムはVC++6で書かれているようなのですが、 Visual Studio .NET 2003でやろうとしているのが間違いなのでしょうか? 不足点などあれば補足いたしますので、 よろしくお願いします。 Microsoft Visual C++でのエラー「fatal error C1014: インクルード ファイルが多すぎます : 深さ = 1024」について タイトルに書きましたが、Microsoft Visual C++で実行(?)した際に、エラーがある時は下の欄にいろいろ出てくると思いますが、先ほど「fatal error C1014: インクルード ファイルが多すぎます : 深さ = 1024」というエラーがでてきました。 絶対にあってるだろう簡単なプログラムでも毎回そうなってしまします。 どういうことなのでしょうか? 初心者なのですがよろしくお願いします。 Visual C++ 2008で<stdio.h>のインクルード文が使えない!? #include <stdio.h> int main(){ printf("hello!"); } で実行すると、 : warning C4627: '#include <stdio.h>': プリコンパイル済みヘッダーの使用を検索中にスキップされました ディレクティブを 'stdafx.h' に追加するか、プリコンパイル済みヘッダーをビルドし直します .\■■■.cpp(5) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? と言ったエラーが起きてしまいます。 ちなみに、インクルードファイルらしき物を削除しまくった覚えがあります…。100%これが原因かと。 これが原因だとしたらどうすればいいんでしょうか? あと、DXライブラリが使えるように設定を変えたこともあります。 どこの何を変えたかは忘れてしまいましたけど。 include_pathについて php.ini内のinclude_pathをinclude_path=".;C:\php\include"と設定してC:\windows\(不安なのでC:\php\にも)に置いているのですが、 なぜかphpinfo()を開いて確認すると".;C:\php5\pear"となっています。 Loaded Configuration File を見ても C:\Windows\php.ini となっていますし。 require_once "DB.php"を実行したときに以下のエラーが出たので、 db.phpのインストールも済んでいることから、include_pathが正しく設定されていないのが問題だと思うのですが・・・ Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\users.php on line 2 Fatal error: require_once() [function.require]: Failed opening required 'DB.php' (include_path='.;C:\php5\pear') in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\users.php on line 2 php.ini以外にも設定しなければいけない個所があるのでしょうか? 「マクロが再定義されました」と「C1083: include ファイルを開けません。」のエラー 少しここで質問してもいいのか不安ですが、助言お願いします。プログラミングについてはまったくの初心者です。(C言語見だして十日程度) 環境はXP, Microsoft Visual C++08, DirectX SDK(November 2008)です。 "0からのゲームプログラミング"と言うサイトに沿って勉強してるのですが、 上記サイト:http://www.plustarnet.com/aspil/Programming/ 上記サイトコンテンツの、2D編の"スケルトンプログラム"の項目でスケルトンプログラムをダウンロードし、記事の通りに作成したのですが、次のようなエラーがでます。 c:\documents and settings\USER\my documents\visual studio 2008\projects\samplestg\skeleton\win32\header\stdafx.h(27) : warning C4005: 'UNICODE' : マクロが再定義されました。コマンド ラインの引数 : 'UNICODE' の前の定義を確認してください c:\documents and settings\USER\my documents\visual studio 2008\projects\samplestg\skeleton\header\music.h(18) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory エラー 4、警告 4 ソースファイルにある4つの.cppそれぞれで出ます。 (1).定義云々と言われる方は(こちらは警告) //#define UNICODE // UNICODE を使用 #ifdef UNICODE #define _UNICODE ←ここ #endif ここです。MSDNのヘルプを見ると、削除または#undefを使え、だったので、#ifdefと#defineの間に"#undef _UNICODE"を追加した所通りました。(削除でも通りました) ただ、これでその後プログラムしていくのに変えて大丈夫でしょうか? (2).includeエラーの方は、(こちらがエラー) #include <dmusici.h> となってるのですが、"dmusici.h"と言うのは"windows.h"などと一緒(ライブラリ?SDK?依存)の物でしょうか? C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include C:\Program Files\Microsoft DirectX SDK (November 2008)\Include とVC++08にセットアップ(?)してますが、どちらにも"dmusici.h"はありませんでした。これはこちらのSDKの問題でしょうか? (1)は、一応解決済みで、警告はでないのですが、もし他にいい方法があれば教えてほしいです。 (2)は、自分的にはDirectX SDKあたりだと思うのですが、良く分かってません… そもそも上記サイトでの解説が04年時の物で、"Visual C++ 6.0"と"DirectX 9.0 SDK Update (Summer 2003)"でのプログラムと解説なので、今のDirectX SDK (November 2008)で動作出来ない(このエラーが解決してもその後そぐわなくなる)ものなのでしょうか?そのあたりも教えていただきたいです。 かなり長文になってしまいました^^;。失礼しました。 C++のデフォルトinclude文? こんにちわ。大学でC++を勉強している者です。授業のプロジェクトで自分の作ったC++のプログラムを大学のLinuxサーバでコンパイルしたところ問題なくコンパイルが通り、動作確認も出来たのですが、それを教授に提出したところ、コンパイルが出来ませんと言われました。どうやら教授は若干大学の研究室のコンピュータと違う環境でコンパイルした模様です。教授の部屋に行ってエラーを見たところ、exit, srand, rand等の関数が見つかりませんと言われていました。どれもstdlib.hに属する関数だと思い、#include <stdlib.h>を入れて再提出したところ問題が解決した。が、どうして研究室のマシンではエラーが起きなかったのかが未だにわかりません。g++のコンフィグにデフォルトのinclude文を定義するところがあってそれが違ってたのではないかとか思っているのですが、確かな情報が未だにつかめていません。教授に聞いたのですが、彼はネットワークが専門でC++の専門ではないので「わかりません」とあっさり言われてしまいました。。。環境についてですが、わかっているのは研究室のマシンがCentOS release 5.5だということだけ。教授のマシンは不明です。宜しくお願いします。 インクルードファイルの設定について 現在code gear C++ builder 2009でプログラミングを勉強してるのですが、 #include <boost/regex.hpp> このファイルをインクルードしてビルドするとビルドができるのですが、 ”ツール”--->”オプション”---->”C++オプション”---->”パスとディレクトリ” (インクルードパス) $(BDS)\ObjRepos\Cpp $(BDS)\include\Indy10 $(BDS)\RaveReports\Lib C:\lib\jvcl\include\D12 C:\c_compornet\component\TMS4808 この中のパスの中には”regex.hpp”がある”C:\Program Files (x86)\CodeGear\RAD Studio\6.0\include\boost_1_35\boost\spirit\utility”のパスを指していないように思うのですが、このふぃあるを指していることを確認する方法などありますでしょうか? また (BDS)というのはどんなものなのかも教えて頂けないでしょうか? 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など