【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;
};
};
スポンサーサイト
[C言語] GUIプログラミング (Win32API) その1
またまたサボってしまったfafarinnですw
最近、プログラミングとか学校とかで忙しくてブログもHPもかなり放置してしまいましたorz...
(↑という言い訳をしてみる)
さて、プログラミングといえば、C言語ですね。
今回は、C言語とWin32APIを使って、
Hello, World.
を表示させたいと思います。
(ブログ継続のため、このシリーズは結構続くかも... 後、忘備録的な意味でもw)
表示方法は2通りぐらいありますが、一番簡単なMessageBoxを使ってみようと思います。
ソースコード
(↑見づらくてスミマセン...)
実行結果

解説
Win32APIを使うには、windows.h をインクルードする必要があります。
WinMainの引数はいわゆるおまじないのようなものなので、特に気にする必要はありません。
(↑本当はそうではないけれど、fafarinnもいまいちよくわかりませんorz)
MessageBox 関数 ( http://msdn.microsoft.com/ja-jp/library/cc410914.aspx より引用)
メッセージボックスを表示する関数です。
hWnd には、今回はウィンドウを表示しないので、NULLを入れました。
uType で、MB_OK などの値(定数)を入れます。
次回は、uTypeを変更してみたいと思います。
最近、プログラミングとか学校とかで忙しくてブログも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;
}
(↑見づらくてスミマセン...)
実行結果

解説
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
みなさん、久しぶりですね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
最近、ブログの左側にスポンサードリンクがあるのに気づきましたか?
これをクリックしてもらえると、管理人に1クリックあたり5~20円お金がたまりますw
まあ、いわゆるアフィリエイトですねw
このアフィリエイトは Microad を使っています。
登録は簡単なので、右側の広告から登録してみてはどうですか?
ちなみに、現在315円貯まっていますwww


