FC2ブログ

【C++】 HTTPクラス

HTTPのGETをする手軽な関数がC++では無いのでWinInetを使ったクラスを作ってみました。

#include <Windows.h>
#include <WinInet.h>

#pragma comment(lib, "wininet.lib")

class HTTP {
HINTERNET hInternet;
HINTERNET hHttpSession;
HINTERNET hHttpRequest;
char* buf;
DWORD bufSize;
DWORD readSize;
public:
HTTP(int bufSize = 1024) {
//バッファ初期化
this->bufSize = bufSize;
buf = new char[bufSize];
memset(buf, 0, bufSize);
//WININET初期化
hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);

};

~HTTP() {
//終了処理
InternetCloseHandle(hInternet);
InternetCloseHandle(hHttpSession);
InternetCloseHandle(hHttpRequest);
delete[] buf;
};

bool get(char* url, char* obj) {
hHttpSession = InternetConnect(hInternet, url, INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
hHttpRequest = HttpOpenRequest(hHttpSession, "GET", obj, "HTTP/1.1", NULL, NULL, INTERNET_FLAG_RELOAD, 0);
HttpSendRequest(hHttpRequest, NULL, 0, NULL, 0);
InternetReadFile(hHttpRequest, buf, bufSize, &readSize);
return true;
};

char* toString() {
return buf;
};

DWORD getSize() {
return readSize;
};
};
スポンサーサイト



[Win32API]RECT構造体

RECT

SAMPLE

RECT rec;
rec.left   = 0;
rec.top    = 0;
rec.right  = 320;
rec.bottom = 240;

[C言語] GUIプログラミング (Win32API) その1

またまたサボってしまったfafarinnですw

最近、プログラミングとか学校とかで忙しくてブログもHPもかなり放置してしまいましたorz...
(↑という言い訳をしてみる)

さて、プログラミングといえば、C言語ですね。

今回は、C言語とWin32APIを使って、

Hello, World.

を表示させたいと思います。

(ブログ継続のため、このシリーズは結構続くかも... 後、忘備録的な意味でもw)

表示方法は2通りぐらいありますが、一番簡単なMessageBoxを使ってみようと思います。

ソースコード


#include <windows.h>

int WINAPI WinMain (
    HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow
) {

    MessageBox(
        NULL, TEXT("Hello, World."), TEXT("Win32API"),
        MB_OK
    );

    return 0;

}


(↑見づらくてスミマセン...)

実行結果

001.png

解説

Win32APIを使うには、windows.h をインクルードする必要があります。

WinMainの引数はいわゆるおまじないのようなものなので、特に気にする必要はありません。
(↑本当はそうではないけれど、fafarinnもいまいちよくわかりませんorz)

MessageBox 関数 ( http://msdn.microsoft.com/ja-jp/library/cc410914.aspx より引用)

int MessageBox(
   HWND hWnd, // オーナーウィンドウのハンドル
   LPCTSTR lpText, // メッセージボックス内のテキスト
   LPCTSTR lpCaption, // メッセージボックスのタイトル
   UINT uType // メッセージボックスのスタイル
);

メッセージボックスを表示する関数です。
hWnd には、今回はウィンドウを表示しないので、NULLを入れました。
uType で、MB_OK などの値(定数)を入れます。

次回は、uTypeを変更してみたいと思います。

久しぶりですねw(っていうかサボり)

こんばんは、fafarinnです。

みなさん、久しぶりですねwww

最近ブログの方はサボっていましたが、

ホームページの方はガンガン更新していましたw

と言っても3月の半ば頃からですけどorz

今CSS3のデザインにはまっているんですw

例えば、角丸にしたり、アニメーションさせたり...

でも対応ブラウザが少なすぎるorz

あとはhtml5をやろうかと思ったんですけど、

3/11の大地震の影響で

Microsoftが、html5復旧のカギ(?)となるかもしれない

Internet Explorer 9 日本語版

の公開を延期してしまったので、

なかなかできない状態になっていますorz

まあ公開されたらhtml5でやってみようかな~

みたいな気分なのですけどねw




話は変わりますけどやっとCLANNADクリアしました!

それだけですw

スポンサードリンクについて

こんにちは、fafarinnですw

最近、ブログの左側にスポンサードリンクがあるのに気づきましたか?

これをクリックしてもらえると、管理人に1クリックあたり5~20円お金がたまりますw

まあ、いわゆるアフィリエイトですねw

このアフィリエイトは Microad を使っています。

登録は簡単なので、右側の広告から登録してみてはどうですか?

ちなみに、現在315円貯まっていますwww

最新記事
クリックしてね
最新コメント
カテゴリ

openclose

月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

リンク
Microad
Fafarinn's Tweet