• ベストアンサー

使っているMicrosoft Visual C++ 2008 Express Editionで”winsock2.h”が使えるかの確認方法

今、Microsoft Visual C++ 2008 Express Editionでエコーサーバプログラムを作っているのですが、プログラムにwinsock2.hを含んでいて、このインクルードファイルが使用できるかどうか知りたいのですが、調べる方法はありますでしょうか。

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

  • ベストアンサー
  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.2

プロジェクトのプロパティ>こうせいぷロパティ>リンカ>入力>追加の依存ファイルに ws2_32.lib を追加してないのでわ?

techhouse
質問者

お礼

回答頂きありがとうございました。 おっしゃっていた通り、ws2_32.libが追加されていないことを確認しました。このファイルを追加してこの問題が解決し、コンパイルできました。 ”http://sourceforge.jp/projects/midicv/svn/view/trunk/TCP_IP%E9%96%A2%E9%80%A3/SocketSample/?root=midicv” このサイトから現在作成しているTCP/IPマルチクライアントサーバのプログラムがダウンロードできるようになっていますので、お暇でしたらどうぞ。

その他の回答 (2)

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.3

>エラーが14出ていてだいたいが”外部シンボル”とか”未解決”とかのエラーが出てくるのですが、これはどのような原因にあたるのでしょうか? リンクしようとした時にライブラリが不足していたり、 関数名を間違えて記述していたりすると出てきます。 今回の場合はNo.2の型が回答しているとおり、追加のライブラリ指定が足りないのでしょう。 http://msdn.microsoft.com/en-us/library/ms742213%28VS.85%29.aspx の下の方に、 >Header Winsock2.h >Library Ws2_32.lib と記述してあります。 リンク時にWs2_32.libも必要。ということになります。

techhouse
質問者

お礼

回答頂きありがとうございました。 おっしゃっていた通り、ws2_32.libが追加されていないことを確認しました。このファイルを追加してこの問題が解決し、コンパイルできました。 ”http://sourceforge.jp/projects/midicv/svn/view/trunk/TCP_IP%E9%96%A2%E9%80%A3/SocketSample/?root=midicv” このサイトから現在作成しているTCP/IPマルチクライアントサーバのプログラムがダウンロードできるようになっていますので、お暇でしたらどうぞ。

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

普通にインストールしていれば、WindowsSDKも一緒に入っているかと思われます。 ということで、使えるハズですが……。 # 実際にincludeしてみて、ビルドしてみれば…ファイルが見つからなければエラーになるでしょう。 なお、winsock2.hがインクルード可能なのと、そこで宣言されているAPIを使いこなせるかは別問題ですので念のため。

techhouse
質問者

お礼

回答頂きありがとうございます。winsock2.hは普通に使えるようですね。現在ビルドをすると下のようなエラー文が出てくるのですが、これはどのような 1>ClientSock.obj : error LNK2001: 外部シンボル ""extern "C" int __stdcall WSAStartup(unsigned short,struct WSAData *)" (?WSAStartup@@$$J18YGHGPAUWSAData@@@Z)" は未解決です。 1>ClientSock.obj : error LNK2001: 外部シンボル ""extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z)" は未解決です。 (中略) 1>C:\mywork\midicv\trunk\TCP_IP関連\SocketSample\Release\ClientSock.exe : fatal error LNK1120: 外部参照 13 が未解決です。 1>ビルドログは "file://c:\mywork\midicv\trunk\TCP_IP関連\SocketSample\ClientSock\Release\BuildLog.htm" に保存されました。 1>ClientSock - エラー 14、警告 0 ========== ビルド: 0 正常終了、1 失敗、3 更新不要、0 スキップ ==========

techhouse
質問者

補足

すみませんお礼の補足をさせていただきます。 エラーが14出ていてだいたいが”外部シンボル”とか”未解決”とかのエラーが出てくるのですが、これはどのような原因にあたるのでしょうか?

関連するQ&A

  • visual studio .NET→ Visual C++ 2005 Express Edition(pshpack2.h)

    visual studio .NETで問題なくコンパイルできたプログラムを 他のマシンのVisual C++ 2005 Express Editionで コンパイルするとビルドエラー fatal error C1083: include ファイルを開けません。'pshpack2.h': No such file or directory のメッセージです。 解決法を教えてください。

  • Visual C++ 2005 Express Edition で Microsoft Platform SDK を使うには

    C++ 2005 Express Edition で Microsoft Platform SDK を使いたいのですが、設定の仕方が良くわかりません。 http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/ というサイトに一応説明があったんですが、 手順3の、 [オプション] ダイアログ ボックスの [プロジェクトとソリューション] セクションで [Visual C++ フォルダ] を更新します。 このセクションでは、適切なサブセクションにパスを追加します: Executable ファイル - 「C:\ProgramFiles\Microsoft Platform SDK\Bin」 Include ファイル - 「C:\Program Files\Microsoft Platform SDK\include」 Library ファイル - 「C:\Program Files\Microsoft Platform SDK\lib」 というところのどこにファイルを追加するのかと、ファイルの追加の仕方が良くわかりません。オプションで、VC++ディレクトリというところにいくまではわかるのですが、その先がわかりません。困っているので、よろしくお願いします。

  • Visual C++ 2008 Express EditionでCのコンパイルは可能ですか?

    Visual C++ 2008 Express Editionを使いプログラムをC++で書いていたのですが、 Cで書かなくては駄目な状況になりVisual C++ 2008 Express Edition でもCのコンパイルが出来るのかを教えて貰いたいです。 試してみたところ出来そうになくて困っています。 Visual C++ 2008 Express Editionの導入方法は以下のURLの通りにしました。 http://www.microsoft.com/japan/msdn/vstudio/express/beginners/2008/visualc.aspx なにか追加で入れる事で使える様になるのか、もしくは出来ないのかよろしくお願いします。

  • Microsoft Visual C++ 2008 Express EditionでMFCアプリケーション ウィザードはどこですか?

    今、Microsoft Visual C++ 2008 Express Editionでソケットプログラムに関して勉強中で、 http://www.g-ishihara.com/mfc_nw_01.htm このサイトにあるサンプルプログラムをやりたいと思っているのですが、このページの冒頭に出てくる”MFCアプリケーションウィザード”というのはMicrosoft Visual C++ 2008 Express Editionではどこでできるのでしょうか?

  • Visual C++ 2008 Express Edition が使えなくなった。

    Visual C++ 2008 Express Editionを開いたら、「Visual C++ 2008 Express Edition 製品の登録」と出てきて使うことが出来ません。 「今すぐ登録」をクリックして、Windows Live ID は取得したのですが、登録キーの取得が出来ません。Windows Live IDでMicrosoftサイトにサインインしても、画面中程の読み込みが終わらなくて、何もできませんでした。どうしたらVisual C++ 2008 Express Editionが使えるようになるでしょうか?

  • Visual C++ 2008 Express EditionとVisual c++.net standard version 2003

    私は大学生なのですが、最近大学のPCでMicrosoft Visual C++ 2008 Express Editionを使って自分なりに真面目にプログラムに取り組むようになりました。 そんな中、家の中の引き出しを整理していると、数年前に興味本位で購入したVisual c++.net standard version 2003が見つかりました。当時はちょっといじっただけでほとんど放置状態でした。 そこで詳しい方にお伺いしたいのですが、『Microsoft Visual C++ 2008 Express Edition』と『Visual c++.net standard version 2003』、これからはどちらを使ってプログラムを組んでいく方が良いと思われますか?幾つかサイトで調べてみましたが、イマイチ違いが分かりませんでした。 恐らくプログラムの目的によって変わってくるとは思いますが、その辺りも含めて御教え頂けたら…(こういうことするならこっち、特に何も制限がないならこちらを勧める、など) ちなみに今の所、Microsoft Visual C++ 2008 Express Editionで不便に思ったことはありません。

  • Microsoft Visual C++ 2008 Express Editionのアンインストール

    Microsoft Visual C++ 2008 Express Edition SP1をアンインストール したいのですが、インストールしたときにいろいろよくわからないものが インストールされました。 なので、削除するときに何をアンインストールしたらよいのかわかりません。 教えてください。 わかっているものは ・Microsoft .NET Framework 3.5 Language Pack SP1 - 日本語 ・Microsoft .NET Framework 3.5 SP1 ・Microsoft Visual C++ 2008 Express Edition SP1 - 日本語 ぐらいです。

  • Visual C++ 6.0 で作成したプログラムをVisual C++ 2005 でコンパイルしたい

    visual C++ 6.0 で作成したプログラムがあります。このソースリストをVisual Studio 2005 Express Edition の Visual C++ 2005 Express Editionでコンパイルしようとしましたが、#include <Windows.h> でエラーになって先に進みません。対応したWindows.hの入手方法教えてください。 それとも、そもそも、Visual C++ 2005 Express Editionでは昔のVC++のプログラムはコンパイルできないのでしょうか?

  • Visual Basic 2005 Express Editionで出来ること

    現在VB6を使用しております。 そろそろ、VersionUpを考えているのですが、Visual Basic 2005 Express Editionでは、VB6の機能はすべて網羅していると考えて大丈夫でしょうか? ADOをつかってmdbファイルへ接続しているのですが、MicrosoftのHPには、SQL Server 2005 Express Edition との接続について書かれているだけで、mdbに関しては明記されていません。 mdbファイルへの接続は可能でしょうか? また、VB6にあって、2005にはないコントロールがあれば教えて下さい。 趣味で個人的に使うプログラムを作っているだけなので、VersionUpに多額の費用は掛けたくありません。 以上、よろしくお願いします。

  • Visual C++ 2008 Express Edition

    Visual C++ 2008 Express Editionをダウンロードしたのですが、使い方が全く分かりません。C言語を学習しています。 例えば #include <stdio.h> int main(void) { printf("Hello, World!\n"); return 0; } というようなプログラミングを実行するにはどうすればいいでしょうか