この先メーラーでも作ってみたいなぁって思って、今、一から勉強しているのですが、
どうもWinSockのバージョンチェックをする部分でエラーが発生します
最初WSADATA構造体を宣言しようとしたらエラーが起こります
MFCの場合はWindowsヘッダーはインクルードする必要ないんですよね?
エラー内容はただ「'WSADATA'定義されていない識別子です」とでるだけです
う~ん、どこがおかしいのでしょうか?

A 回答 (1件)

StdAfx.h ファイルに


#include <afxsock.h> してみてください。

AfxSocketInit() するのも忘れないで…。

プロジェクトを作成するときに
「Windows ソケット」を選択しわすれたのだと思います。
    • good
    • 0
この回答へのお礼

>プロジェクトを作成するときに
>「Windows ソケット」を選択しわすれたのだと思います。
まさしくそのとおりでした(^^;
無事解決しました~
SpiralGalaxyさん、ありがとうございます

お礼日時:2001/10/12 17:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QphpMyAdminバージョン別動作環境の調べ方

質問させて頂きます、宜しくお願い致します。
PHP Version 5.1.6の環境で、phpMyAdminを使用したく準備しております。

現在最新のphpMyAdmin 3.5.3~3.5.1まで、バージョンを下げながらテストしているのですが、「PHP 5.2+ is required」という表示がでてしまい、動作を確認できません。

そこで質問なのですがphpMyAdminのバージョンごとに、必要環境(php5.2以上等)が記載されたページ等を知りたく存じます。
いちいち、アップしてダメ、アップしてダメという感じでテストを繰り返すのが大変になってきてしまったためです。

何卒、宜しくお願い申し上げます。

Aベストアンサー

多分そんな都合の良いページはないですよ。

展開したファイルの中のREADMEを見れば必要要件が記載されているので、
アップロードする前にREADMEに目を通せば宜しいかと思います。
http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/

Qヘッダーの中でヘッダーをインクルードすると?

「自作ヘッダーAの中で別の自作ヘッダーBをインクルードする」
という事はどういう意味になり、どういう事が起こるのでしょうか?

「自作ヘッダーAの中で別の自作ヘッダーBをインクルードする」と
自作ヘッダーAの中で、
Bをインクルードした位置より下に定義した定数や構造体は
未定義とエラーが出てしまいます。
(は2回以上自作ヘッダーAをインクルードした時のみですが。)

なぜこのような症状が現れるのでしょうか?

>コンパイラ:VC++ 2008 EE

Aベストアンサー

動作としては単にAのテキストの #iinclude "B.h" の位置にB.hのテキストが展開されるだけです。
恐らくBの中にエラー若しくは実行部があるものと思われます。

Qパソコンのバージョンの調べ方

初心者ですが、お願いします。
自分の使っているパソコンのバージョンの調べ方がわかりません。
Windows XP サービスパック◯◯というようなことです。

よろしくお願いします。

Aベストアンサー

マイコンピュータのプロパティを見ましょう

Qwinsockを使ったネットワークプログラミングについて。 Winsockを使用したプログラムに悪戦

winsockを使ったネットワークプログラミングについて。
Winsockを使用したプログラムに悪戦苦闘中なんですが、送信用関数にsend,sendto、受信用関数にrecover,recvfromがありますよね。ネット等で調べた結果「TCPではsendとrecv,UDPではsendtoとrecvfromを主に使う」との記載を目にしました。
では例えばですが、パソコンA,Bがあったとして、TCP設定のソケットを使いAからBへsend関数でデータ送信、Bはrecvfromでデータを受信かつrecvfrom第五引数のデータを使いAのIPアドレスを取得。ということは可能でしょうか?

Aベストアンサー

一般的な回答として、そのようなことはできません。 (厳密な話しをすればパケットキャプチャーなどの技術を使えば可能ですが...)
そもそも、TCP/IPとUDP/IPではプロトコルが違います。 TCP/IPでは「接続」手順が必要で、この手順を無しにUDP/IPのように送信することはできません。
相手のIPアドレスを知りたいだけならTCP/IPでAからBへ「接続」した時点で、BはAのIPアドレスを知ることができます。

QASUS マザーボードのバージョンの調べ方

今持っているASUSマザーボード「P5K Deluxe」はCore2Quad6600(G0ステッピング)CPUに対応しているか確認するためにBIOSのバージョンを調べています。調べ方としては

http://support.asus.com/technicaldocuments/technicaldocuments.aspx?SLanguage=ja-jp&root=252

で調べることができるようで、CPUに対応するBIOSは

http://support.asus.com/cpusupport/cpusupport.aspx?SLanguage=ja-jp&model=P5K%20Deluxe/WiFi-AP

ということで、どうやら「0404」以上のバージョンでならないといけないようです。
自分のマザーボードを見ると
「REV 1.00G」と書いてあります。
これはバージョンとしては「0001」ということで、このままではCPUに対応していないことになりますか?

よろしくお願いいたします。

Aベストアンサー

勘違いしてる様子、参考意見です。

>自分のマザーボードを見ると「REV 1.00G」と書いてあります。

「rev1.00G」はマザー上にシルク印刷で書いてある数字でしょ、
CPU対応表に記載されてる「rev.0404」はBIOSのバージョン番号
だから別物です。

CPU対応表で「PCB」の項目部分がマザーのリビジョン、「ALL」と表示
されてるのでリビジョンに関係なくPCBは全てクリアー。
(BIOSのrev.確認のみ必要)


ご自分で調べ方を記載してる、下記URL(2)BIOSリビジョンを参照。
http://support.asus.com/technicaldocuments/technicaldocuments.aspx?SLanguage=ja-jp&root=252

PC起動時のPOST画面(上部)最初に「BIOSのrev.」が表示されるので
読み取る、表示が早すぎるなら見たい部分で「Pouse」キーを押せば
画面が停止するはずです。

QMicrosoft Visual C++でのエラー「fatal error C1014: インクルード ファイルが多すぎます : 深さ = 1024」について

タイトルに書きましたが、Microsoft Visual C++で実行(?)した際に、エラーがある時は下の欄にいろいろ出てくると思いますが、先ほど「fatal error C1014: インクルード ファイルが多すぎます : 深さ = 1024」というエラーがでてきました。

絶対にあってるだろう簡単なプログラムでも毎回そうなってしまします。

どういうことなのでしょうか?

初心者なのですがよろしくお願いします。

Aベストアンサー

VC++6.0あたりまでですと、プリコンパイル済みヘッダーなんかが悪さして、まともにコンパイルできないって事は良くありました。
表記のエラーは記憶に無いですが。

試しにプリコンパイル済みヘッダーを使用しない設定にするとか、フルビルドをかけてみるとか。

815644 - C1010 エラーの情報: 最も多くの共通の原因
http://support.microsoft.com/kb/815644/ja


> #include <stdio.h>
> ~

> このコードでも同様のエラーなんです。

VC++だと、stdio.hを直接書き換えるなんて事も可能だったハズ。
間違って書き換えちゃったとかって事は?


あるいは、コンパイル時の設定で、#defineが無効になるような所をいじってしまったとか。

QMSのエクセルのバージョンの調べ方を教えてください。

MSのエクセルのバージョンの調べ方を教えてください。

当方は現在必要があって、現在利用中のヒューレットパッカードのNote Dv5 Pavilionというコンピュータ(Win Vistaです)に最初から付いているMSのエクセルのバージョンを確認しようと試みましたが、一般的な方法だと教えられていた「ヘルプ」から「バージョン情報」を探すことができませんでした。エクセルの画面上に「ヘルプ」が存在しなかったからです。

この様な場合、どの様にしてエクセルのバージョン情報を探すべきないのでしょうか?教えてください。
また、MSは「ヘルプ」から「バージョン情報」を出すという方法を停止して、何の利益があるのでしょうか?もしお分りの方がいらっしゃったら、教えてください。お願いします。
当方が時代遅れなだけかもしれませんが、今まで10年以上MSのソフトで普遍的に使われてきた技法を使わせてもらえないことには不満を覚えます。
宜しくお願いします。

Aベストアンサー

Excel のバージョン確認方法
http://www.microsoft.com/japan/security/bulletins/ver_excel2007.mspx
とか。

Qatlstr.hのインクルードによるエラーについて

atlstr.hのインクルードにより生じるエラーについて質問させて頂きます。

開発環境は、Visual Studio 2008 Professional Editionです。
(Visual Studio 2008におけるプログラミングは正直まだ慣れておりませんorz)

Visual Studio 2008製品内のVisual C++ 2008において、以下の操作を行いプログラムを
実行すると、コンパイルは通るのですが、プログラム実行後にエラー音が一度鳴るだけ
でフォームが表示されないというエラーが発生します。その際、タスクマネージャでプロセ
スを確認するとプログラム自体は動いているようで、”AtlStrTest.exe”というプロセスが実
行されているのが確認できます。


1.[ファイル]->[新規作成]->[プロジェクト]で新しいプロジェクトダイアログを表示させる
2.[Visual C++]->[CLR]->[Windows フォーム アプリケーション]を選択し、プロジェクト名
  ”AtlStrTest”でプロジェクトを新規作成
3.プロジェクト内に生成された”atdafx.h”の”// TODO: プログラムに必要な追加ヘッダー
  をここで参照してください。”というコメントの下に#include <atlstr.h>の一行を追加する


 原因を分析しようにも、ヘッダをインクルードしただけでエラーが起きるという状況がは
じめてなので、途方に暮れている状態です。

大変恐縮ですが、このatlstr.hのインクルードによるエラーがなぜ発生したのかについて、
どなたかアドバイスよろしくお願いいたします。


【関連情報】
 同様の操作を、Win32コンソールアプリケーションで実行したときは、このようなエラーは
出ませんでした

atlstr.hのインクルードにより生じるエラーについて質問させて頂きます。

開発環境は、Visual Studio 2008 Professional Editionです。
(Visual Studio 2008におけるプログラミングは正直まだ慣れておりませんorz)

Visual Studio 2008製品内のVisual C++ 2008において、以下の操作を行いプログラムを
実行すると、コンパイルは通るのですが、プログラム実行後にエラー音が一度鳴るだけ
でフォームが表示されないというエラーが発生します。その際、タスクマネージャでプロセ
スを確認するとプログラム自体は動...続きを読む

Aベストアンサー

これまでに書かれた内容から、多分同じであろうというプロジェクトを作って見ました。

結果は、
Debugでは
VS上でデバッグ開始/デバッグなしで開始/exeで実行のいずれでもエラーメッセージ(Debug Assertion Faild! この下のメッセージは内容が判りませんでした。存在しないディレクトリのdbgheap.cを示していましたので)を出して、中止を選んでもプロセスが残ったままでした。すべて中止にすればプロセスも終了しました。

Releaseでは
デバッグ開始でハンドルされていない例外のエラー、デバッグなしで開始/exeで実行のいずれでもForm1が表示されました。
右上の閉じるボタンで終了しました。

Visual Studio 2008 Professional Version 9.0.30729.1 SP です。

結果だけで、原因と解決法はわかりません。

Qパッケージのバージョンの調べ方

rpmでインストールされたパッケージは
rpm -qaなどでバージョンを確認することができますがソースからインストールした場合、そのパッケージのバージョンを知ることはできますか?

もうひとつ、SRPMという形式のパッケージがありますが、これをインストールするときもRPMで使用する
オプションと同じなのでしょうか?

Aベストアンサー

>バージョン
ソースからインストールした場合の各ソフトのバージョンですよね?
それともソースからパッケージを作ってインストールした場合?

前者なら調べたいソフトの引数に-vなどがあればバージョンを表示できるかとおもいます。
rpm -qaのような汎用的なものはないとおもいます

>SRPM
これはソースパッケージなので、通常はコンパイルしてRPMパッケージにしてから、インストールします。
RPMパッケージではライブラリなど現在の環境に合わないって場合に、簡単に現在の環境に合わせたRPMパッケージを作ることができるので便利です。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/223instsrpm.html

QMFCのexeのプログラムを MFCのdllに書き換えたい

VC++6.0を使用しています

新規作成
MFC AppWizard(exe)
新規
OK
[ステップ1]
ダイアログベース
次へ
[ステップ2/4]
次へ
[ステップ3/4]
次へ
[ステップ4/4]
終了

で作られた、雛型のexeをそっくりMFCのDLLに書き換えたい
と考えています
exeで作られたアプリを他のユーザーがVB6.0からDLLとして呼び出したいので書き換えて欲しいと頼まれました

MFCのDLLも雛型は簡単に出来上がるのですが
以下の関数を独立したオブジェクトにして、VB6.0からDLLの関数VBFUNC1として呼び出したいのですが、VBから呼び出すと

AfxEnableControlContainer();でアサートで引っ掛かってしまいます

ダイアログを使用したMFCのEXEをDLLとして使う場合の、コーディングについてご指南ください

BOOL CAaaApp::VBFUNC1()
//BOOL CAaaApp::InitInstance()
{
  AfxEnableControlContainer();

#ifdef _AFXDLL
  Enable3dControls();
#else
  Enable3dControlsStatic();
#endif

  CAaaDlg dlg;
  m_pMainWnd = &dlg;
  int nResponse = dlg.DoModal();
  if (nResponse == IDOK)
  {
  }
  else if (nResponse == IDCANCEL)
  {
  }
  return FALSE;
}

VC++6.0を使用しています

新規作成
MFC AppWizard(exe)
新規
OK
[ステップ1]
ダイアログベース
次へ
[ステップ2/4]
次へ
[ステップ3/4]
次へ
[ステップ4/4]
終了

で作られた、雛型のexeをそっくりMFCのDLLに書き換えたい
と考えています
exeで作られたアプリを他のユーザーがVB6.0からDLLとして呼び出したいので書き換えて欲しいと頼まれました

MFCのDLLも雛型は簡単に出来上がるのですが
以下の関数を独立したオブジェクトにして、VB6.0からDLLの...続きを読む

Aベストアンサー

まず、DLLとEXEの違いについてわかっていますか?
DLLとは"他のEXEやDLLに対して機能を提供するもの"です。

単体では役に立たず、直接・間接にEXEから呼ばれて役に立つものです。

DLLを作成するには、DLLの役割を明確にしなければなりません。
通常、関数の形で提供することが多いですが、
クライアントがC++であれば、C++クラスを提供することも可能です。

この提供することを"エクスポート"と呼びます。
エクスポートするためには特別な指定が必要です。

詳細はこちらで参考になります
http://hp.vector.co.jp/authors/VA023539/tips/dll/001.htm

なお、VB6がクライアントの場合、DEFファイルも必要です。
http://www.geocities.jp/i_love_balard/myhome/vbdll.html

さらに, DLL側でメッセージ処理を行わせるには
いくつかの注意点があります。
http://msdn.microsoft.com/ja-jp/library/30c674tx.aspx

色々大変です。

ただ単にVBからVC++のアプリを呼び出したいなら
わざわざDLLにするよりも
Shell関数のほうが簡単だと思います。

http://hanatyan.sakura.ne.jp/vbhlp/tap_shell.htm

まず、DLLとEXEの違いについてわかっていますか?
DLLとは"他のEXEやDLLに対して機能を提供するもの"です。

単体では役に立たず、直接・間接にEXEから呼ばれて役に立つものです。

DLLを作成するには、DLLの役割を明確にしなければなりません。
通常、関数の形で提供することが多いですが、
クライアントがC++であれば、C++クラスを提供することも可能です。

この提供することを"エクスポート"と呼びます。
エクスポートするためには特別な指定が必要です。

詳細はこちらで参考になります
http://...続きを読む


人気Q&Aランキング