アプリ版:「スタンプのみでお礼する」機能のリリースについて

VisualC++でWin32 Applicationで作るときの、
三行目にはなんと書くんですか?

--図--
#include <???.h>

ここの行です。
{
cout << "hello";
return 0;
}

知っている方教えてください。

A 回答 (6件)

int PASCAL WinMain(


HINSTANCEhinstCurrent,/* 現在のインスタンスのハンドル */
HINSTANCEhinstPrevious,/* 以前のインスタンスのハンドル */
LPSTRlpszCmdLine,/* コマンド ラインのアドレス */
intnCmdShow/* 表示ウィンドウのタイプ (オープンまたはアイコン) */
)

という感じ。もちろん、変数名は何でも良いし、コメントまで、
同じにする必要はないです。インクルードするのは windos.h 。

でも、質問にあるような内容のプログラムを書きたいのであれば、
Win32 Application ではなく、Console Application で書きましょう。
    • good
    • 0
この回答へのお礼

ありがとうございました。
確かにこんなのはConsole Application
で作るべきだと思います。
(でもあれはとりあえず何か書こうとしただけです)

お礼日時:2001/05/23 21:47

Win32 Applicationとは


他のWindows用のアプリケーションと同様に
ウインドウを作成するプログラム環境です。

したがってWin32 Console Applicationみたいに
記述しただけでは簡単には動きません。

それでも、質問に対する回答としてしては

#include<WINDOWS.H>

int WINAPI WinMain(HINSTANCE hThis,HINSTANCE hPrev,LPSTR lpCmdLine,int nShowCmd)
{

という書き出しにはなります。

ただ、これだけではプログラムが動作するとは思えないので
質問を締め切らずにお待ちいただけるのであれば
動くプログラムを別回答でアップしようと思います。

それでは、またあとでお会いいたしましょう。
    • good
    • 0
この回答へのお礼

確かにエラーが出ました。

>質問を締め切らずにお待ちいただけるのであれば
>動くプログラムを別回答でアップしようと思います。

お願いします。ありがとうございました。

お礼日時:2001/05/23 21:53

期待しているのはこれでしょうか。


いろいろ足りないかと思いますが。

int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdLine, int nCmdShow)
    • good
    • 0
この回答へのお礼

ありがとうございます。
でも、そこだけ変えてもだめみたいです。

お礼日時:2001/05/23 21:59

xinman再びです。



たぶん、これくらい書かないと。
分からないところがたくさんあると思いますが
これから勉強していきましょう。
教えて!gooもあるし…

以下プログラム

#include<WINDOWS.H>

LRESULT CALLBACK WndProc(HWND hWnd,UINT uiMessage,WPARAM wParam,LPARAM lParam)
{
HDC hDC;
switch(uiMessage)
{
case WM_PAINT:
hDC=GetDC(hWnd);
TextOut(hDC,
150/*X座標*/,
100/*Y座標*/,
"Hello!"/*表示する文字列*/,
6/*表示する文字数*/);
ReleaseDC(hWnd,hDC);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,uiMessage,wParam,lParam);
};
return 0;
};

int WINAPI WinMain(HINSTANCE hThis,HINSTANCE hPrev,LPSTR lpCmdLine,int nShowCmd)
{
LPSTR lpszName="TEST_WINDOW";
WNDCLASS wc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.lpfnWndProc=WndProc;
wc.lpszClassName=lpszName;
wc.lpszMenuName=NULL;
wc.style=0;
wc.hInstance=hThis;

if(!RegisterClass(&wc))return 1;

HWND hWnd;
hWnd=CreateWindow(lpszName,
"WINDOW_TITLE"/*ウインドウのタイトル*/,
WS_OVERLAPPEDWINDOW|WS_VISIBLE,
0/*ウインドウの左端の座標*/,
0/*ウインドウの上端の座標*/,
400/*ウインドウの幅*/,
300/*ウインドウの高さ*/,
NULL,NULL,hThis,NULL);

if(!hWnd)return 2;

MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
};

return msg.wParam;
};
    • good
    • 0
この回答へのお礼

ご丁寧にどうも。
細かい事ですが、
実行したとき白いすじのようなものが見えます。(文字の所)
気になります。ありがとうございました。

お礼日時:2001/05/23 22:06

こんにちは、honiyonです。


 どちらかというと、そのプログラムはコンソールアプリケーションで、「void main()」の方が適切な気がします。

 その分からない部分はプログラムではなく構文にあたりますね。 そのような場合ここで質問するより、教科書や参考書を読んだ方が圧倒的に早く理解できると思いますよ。実力もつきやすいと思います。

 大きなお世話であれば申し訳ありません(..
    • good
    • 0
この回答へのお礼

ナルホドヒレハレ。ありがとうございました。

お礼日時:2001/05/25 19:56

早速実行した見たいですね。



>実行したとき白いすじのようなものが見えます。(文字の所)
>気になります。
それはまさに文字を書いている瞬間を目撃しているのです。

WinProcを次の関数に置き換えると「白いすじのようなもの」は無くなります。


LRESULT CALLBACK WndProc(HWND hWnd,UINT uiMessage,WPARAM wParam,LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hDC;
switch(uiMessage)
{
case WM_PAINT:
hDC=BeginPaint(hWnd,&ps);
TextOut(hDC,
150/*X座標*/,
100/*Y座標*/,
"Hello!"/*表示する文字列*/,
6/*表示する文字数*/);
EndPaint(hWnd,&ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,uiMessage,wParam,lParam);
};
return 0;
};
    • good
    • 0
この回答へのお礼

確かに直ってますね。ありがとうございました。

お礼日時:2001/05/25 19:58

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