- ベストアンサー
「猫でもわかるプログラミング」について。
Oh-Orangeの回答
- Oh-Orange
- ベストアンサー率63% (854/1345)
★『Windows アプリケーション』で作っていますか? ・もしも、コンソール・アプリケーションならばコンパイルできません。 GUI のアプリケーションを作成するようにオプションを切り替えて下さい。 ・ちなみに VC のバージョンはどれですか? (1)VC 6.0 (2)VC 2003.NET (3)VC 2005.NET (4)上記以外 下の『参考URL』をどうぞ。→読みましたか? ・次のサンプルをどうぞ。 #include <windows.h> // ウィンドウクラス名 static TCHAR szClassName[] = TEXT("クラス名"); // ウィンドウの生成 BOOL InitInstance( HINSTANCE hInst, int nCmdShow ) { HWND hWnd; hWnd = CreateWindow( szClassName, TEXT("タイトル文字列"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, NULL ); if ( hWnd != NULL ){ ShowWindow( hWnd, nCmdShow ); UpdateWindow( hWnd ); return( TRUE ); } return( FALSE ); } // ウィンドウ・クラスの登録 BOOL InitApp( HINSTANCE hInst ) { WNDCLASSEX wcex; wcex.cbSize = sizeof( WNDCLASSEX ); wcex.style = (CS_HREDRAW | CS_VREDRAW); wcex.lpfnWndProc = DefWindowProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInst; wcex.hIcon = LoadIcon( NULL, MAKEINTRESOURCE(IDI_APPLICATION) ); wcex.hIconSm = LoadIcon( NULL, MAKEINTRESOURCE(IDI_APPLICATION) ); wcex.hCursor = LoadCursor( NULL, MAKEINTRESOURCE(IDC_ARROW) ); wcex.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH ); wcex.lpszMenuName = NULL; wcex.lpszClassName = szClassName; return( RegisterClassEx(&wcex) ); } // メイン関数 int WINAPI WinMain( HINSTANCE hCurInst, HINSTANCE hPrevInst, LPSTR lpsCmdLine, int nCmdShow ) { BOOL bRet; MSG Msg; if ( hPrevInst == NULL ){ if ( !InitApp(hCurInst) ){ return( 0 ); } } if ( !InitInstance(hCurInst,nCmdShow) ){ return( 0 ); } while ( (bRet = GetMessage(&Msg,NULL,0,0)) != 0 ){ if ( bRet < 0 ){ break; } TranslateMessage( &Msg ); DispatchMessage( &Msg ); } UNREFERENCED_PARAMETER( lpsCmdLine ); return( (int)Msg.wParam ); } 最後に: ・今までは『コンソール・アプリケーション』でしたが、今回のプログラムは 『Windows アプリケーション』という Win32 プロジェクトを選択しないと出来ません。 オプションなどを確認して下さい。 ・上のソースをコピー&ペーストして試してみて下さい。ただし、インデント部が全角ですので タブ文字に一括変換して下さい。→コンパイルする前に『Win32 プロジェクト』に変更して下さい。 ・成功すると真っ白なウインドウが作成されます。 ・以上。結果報告を待っています。
関連するQ&A
- MDIのメモ帳もどきにセーブ・ロード機能をつけるには
猫でもわかるプログラミング WINSDK編 83章~85章のMDIのメモ帳もどきにセーブ・ロード機能を 付けるには、どうすればいいんですか? http://www.kumei.ne.jp/c_lang/sdk/sdk_83.htm http://www.kumei.ne.jp/c_lang/sdk/sdk_84.htm http://www.kumei.ne.jp/c_lang/sdk/sdk_85.htm MDIのドキュメントウィンドウのウィンドウハンドルを取得したら、 (これは前回質問して分かりました。hChildがハンドルですね?) その子ウィンドウであるエディットボックスのウィンドウハンドルを 取得したいんですが、どうすればいいですか? 要するに、「猫でもわかるWindowsプログラミング第2版」の int MyOpen(HWND hEdit);int MySaveAs(HWND hEdit);に手を加えるだけで テキストファイルを操作したいんです。
- ベストアンサー
- C・C++・C#
- dllの作り方
環境 WIN98 VC++6.0 MFC にて 猫でも~において 161章でdllを作りましたが、xxx.dllファイルは作成されますが、xxx.libが作成されません。 162章では両方作られ問題ありません。 作り方は、 メニューから「ファイル」「新規作成」「プロジェクト」(タブ)を選択します。そこから「Win32 Dynamic-Link Library」を選びました。 どうすればxxx.libが作られるのか教えてください。 161章 http://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm 162章 http://www.kumei.ne.jp/c_lang/sdk2/sdk_162.htm
- ベストアンサー
- C・C++・C#
- C++でプログラミングを行っているのですが、リソースファイルがコンパイ
C++でプログラミングを行っているのですが、リソースファイルがコンパイルできません。 以前にyahoo知恵袋でも質問したのですが、解決しなかったのでこちらで再度同様の質問いたします。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1243426602 文法エラーではないはずです。 http://www.kumei.ne.jp/c_lang/sdk/sdk_06.htm (猫でもわかるプログラミング) ここのソースをまるっとコピーしてもエラーとなります。 他のサイトのソースで試してみてもだめでした。 何か問題があるのでしょうか。
- ベストアンサー
- C・C++・C#
- パイプを用いたプロセス間通信について
VC++2005にて下記サイトを参考にパイプを用いたプロセス間通信を行うプログラムを作成しています。 猫でもわかるプログラミング (1)第242章 匿名パイプ(サーバー側) http://www.kumei.ne.jp/c_lang/sdk3/sdk_242.htm (2)第243章 匿名パイプ(クライアント側) http://www.kumei.ne.jp/c_lang/sdk3/sdk_243.htm サーバー側からWriteFileでデータを送信する際に、 char型配列に入ったバッファデータ「szBuf」を送信し、 クライアント側のReadFileで同じく「szBuf」で受信していますが、 構造体Data ================== typedef TypeData{ int a; int b; char c[10]; }Data; ================== のオブジェクトdataを送信するには、WriteFile及びReadFileの箇所は どのように実装すれば良いのでしょうか? MSDNにはWriteFileの引数の型はLPCVOIDとあるため、 可能だと思うのですが。。。 もし解決策をご存知の方おられましたら、ご教示お願い致します。
- 締切済み
- C・C++・C#
- 猫でもわかるプログラミング74章
74章は http://www.kumei.ne.jp/c_lang/sdk/sdk_74.htm です。簡単なメモ帳をつくるというお題で、その中に ファイルをオープンするとき、 char szFileName[256];// オープンするファイル名(パス付き) char szFile[64];// ファイル名 OPENFILENAME ofn; として、 … ofn.lpstrFile = szFileName; //フルパスつきファイル名を格納 ofn.lpstrFileTitle = szFile;//選択されたファイル名が格納されます … GetOpenFileName関数 として、「ファイルを開く」のコモンダイアログを開いてファイル名等等を取得し、 CreateFileでそのファイルをopenするという例題なのですが、 szFileNameにはパスつきファイル名が格納されているのですが、szFileにはなにも格納されていないみたいなんです。ずっと色々悩んでいるのですが、どこがいけないでしょうか。 VC++ 6.0 WinXP
- ベストアンサー
- C・C++・C#
- 猫でもわかるwindowsプログラミング第三版について設定の仕方がわかりません。
使っているコンパイラはVC++2008エクスプレスエディションです。 「猫でもわかるwindowsプログラミング第三版」には、上記の物が使えると書いてあり、 リソースエディタも、フリーのreseditを入れました。 後、SDKもきちんと設定しました。 しかし、どのプログラムもエラーがでます。 どうしたらいいのでしょうか? わかる方、またはよいHPがあれば教えてください。
- ベストアンサー
- C・C++・C#
- VC++6.0で、C言語を使ってメールの受信確認プログラムを組んでいま
VC++6.0で、C言語を使ってメールの受信確認プログラムを組んでいます。 どのような動きをするのか一度知っておきたくて、 猫でもわかるプログラミングの「第230章 メールを受信する」 [http://www.kumei.ne.jp/c_lang/sdk3/sdk_230.htm] を組んでテストをしてみたのですが、 メールを1通も受信していない場合、 「0 messages」が返されると書いてあるのですが、 何度やっても返されません。 また、USERNAME を入れた辺りから、 返ってくる値がずっと[+OK]しか返ってきませんが、 エラー等も確認できません。 LISTを送信したときには 「-ERR not that many messages」ような エラーが返ってきます) 何か仕様が変わって、OKでは判断せずに、 上記のエラーを出力させてから判断するプログラムになった ということでしょうか。 メールがある場合は、通常通りに動作しています。 宜しくお願いいたします。
- ベストアンサー
- C・C++・C#
- USBで持ち運びできるWindowsプログラミングの開発環境
USBで持ち運びできるWindowsプログラミングの開発環境を探しています。 自宅ではMicrosoft Platform SDKを利用してVC++2005で開発しています。 学校でもWindowsプログラミングを行いたいのですが 学校にはVC++2005はインストールされているものの Microsoft Platform SDKがインストールされておらず Windowsアプリケーションを作成できません。 そこで、USBで開発環境を持ち運びできないかと考え 色々と探したのですが、見つかりませんでした。 ご存知の方いらっしゃいましたらよろしくお願いします。 備考 自宅:Windows XP Home Edition 学校:Windows XP Professional
- ベストアンサー
- C・C++・C#
- 猫でもわかるプログラミング161章
http://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm にDLLを使ったメッセージフックについて説明があるのですが、どうもその通りにやってもうまくいきません。 まず、 1.dll作成する際にlibが生成されない。 2.ヘッダファイルに #define EXPORT extern "C" __declspec(dllexport) を付け加え、 EXPORT LRESULT CALLBACK .... という風にEXPORTをつけてビルドすると、libファイルが生成されるものの、それをメインプログラムのプロジェクトに追加しても リンク中... hookmain.obj : error LNK2001: 外部シンボル ""int __cdecl ResetHook(void)" (?ResetHook@@YAHXZ)" は未解決です hookmain.obj : error LNK2001: 外部シンボル ""int __cdecl SetHook(void)" (?SetHook@@YAHXZ)" は未解決です Debug/hook.exe : fatal error LNK1120: 外部参照 2 が未解決です。 link.exe の実行エラー というエラーが起きます。 このエラーが何を意味しているかもわからず、dllについても勉強中なのでどこを直せばいいかがみえてきません。どなたかわかる方がいらしたらよろしくお願いします VC++ 6.0 WinXP
- ベストアンサー
- C・C++・C#
お礼
Oh-Orange様 わざわざソースコードありがとうございます。 >・ちなみに VC のバージョンはどれですか? (3)VC 2005.NET です。 Oh-Orange様のコードはこれから試してみます。先程は「font02」という名前のファイルを作って、そこの「font02.cpp」に、「第28章 ボタンを使う」のコードをコピペしました。貼り付けるところが悪かったのでしょうか?