【雑談】こんなの使うのか?みたいな関数やクラスの紹介

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
バグ

【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#1

投稿記事 by バグ » 17年前

ここに来られる方々なら一度は経験があるのではないでしょうか…
完全なる自己満足でしかない関数やクラスを作って途方にくれたことが…(笑)

そんな関数やクラスでも、誰かが役に立ててくれるかもしません。
ここで紹介してみませんか?

ってな訳で、言いだしっぺの私が1つ紹介させていただきます。
Win32APIのコンソールアプリ作成時に便利な関数をまとめてクラス化したCConsoleクラスです。

これがあれば、味気ないコンソールアプリでも(少しだけ)色が使えます!!
これがあれば、(制限はあるけれど…)コンソールアプリのWindowのサイズを変更できます!!
これがあれば、自分の指定した場所にテキストを表示することができます!!
これがあれば、邪魔なカーソルを非表示にすることができます!!

ってな感じの自己満足クラスです。
希望があれば、リファレンスを作成しますが、そんな人は居ませんね(苦笑)

lbfuvab

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#2

投稿記事 by lbfuvab » 17年前

CConsoleライブラリは結構需要ありそうですね。(扱うと楽しいですね)
そういえば私も昔(半年前)分数ライブラリっていうのを作った記憶があります。

tk-xleader

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#3

投稿記事 by tk-xleader » 17年前

WinAPIとDxライブラリで使うのに作ってみた「DateTime」クラスです。正直64ビット非対応なんですが、本当に使いどころがありません。
ちなみに、iostream対応です。

ibis

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#4

投稿記事 by ibis » 17年前

WindowsAPIのAnimateWindow関数。
ただでさえ使うべき場面が少ないのに、ウィンドウリージョンと併用できないんですよね。
リージョン使うなら、WM_SHOWをトリガーにして自前で実装するとか?

標準ライブラリのgetenv、<stdarg.h>、<locale.h>等。
便利なのですが、使う機会はあまり無いですよね。

標準ライブラリの<setjmp.h>。
使いたくないってのを通り越して、存在自体を忘れてました。

Justy

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#5

投稿記事 by Justy » 17年前

 要boostな二次元ベクトルクラス。
 type_traitsの練習に作ったやつで、コンストラクタとかが変態です。

組木紙織

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#6

投稿記事 by 組木紙織 » 17年前

2次元オートマトンの画像作成プログラムソース集。
ビットマップ操作の練習につくったものです。

バグ

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#7

投稿記事 by バグ » 17年前

皆さん、なにげに色々と作ってますねぇ…(^_^;)

>>lbfuvabさん
コンソールアプリでも、意外に色々と遊べるんですよね。
分数ライブラリとは、どのようなものだったんですか?(?_?)

>>tkmakwins15さん
.NetやMFCには似たようなクラスがありますが、標準ではありそうでないですよね。
なんらかのログを残したい時なんかに、日付を添付したりする場合にはいいかも?

>>ibisさん
AnimateWindow…まぁ、その、あれです。
なんとなく派手にしたいかなー?とかそういう気分になった場合の為に(笑)

>>Justyさん
boostには興味があるものの、未だに触ったことがないので、分からない部分もありますが…
確かにコンストラクタが大変なことになってますね(笑)

>>組木紙織さん
なにげにBitmap操作って面白いですよね。
.NetにあるBitmapクラスのSetPixelが遅過ぎるので、どうにか速度アップできないかと自作したのが下記の関数です。(ちなみにC#です)
unsafeコードですが、スピードが一気に上がりました(笑)
public void SetPixelEx(ref Bitmap bitmap, int x, int y, Color color) 
{ 
	Rectangle angle = new Rectangle(0, 0, bitmap.Width, bitmap.Height); 
	BitmapData data = bitmap.LockBits(angle, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); 
	int stride = data.Stride; 

	unsafe 
	{ 
		byte* p = (byte*)(void*)data.Scan0; 
		int count = 0; 
		int offset = stride - bitmap.Width * 3; 
		count = x * 3 + y * bitmap.Width * 3 + offset * y; 
		p[count] = color.B; 
		p[count + 1] = color.G; 
		p[count + 2] = color.R; 
		bitmap.UnlockBits(data); 
	} 
}

lbfuvab

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#8

投稿記事 by lbfuvab » 17年前

分数ライブラリはCで組みました。
放置してたので動作確認してませんwww

バグ

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#9

投稿記事 by バグ » 17年前

>>lbfuvabさん
ほほう、なかなか面白いですね(^o^)
という訳で、C++でクラス化してみました♪(^-^)
計算用の関数は演算子を多重定義することで実装しています。
符号情報は分子用の変数をint型変更して変数自身に持たせる事にしました。
って、最早別物になってしまいましたね…(^_^;)

lbfuvab

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#10

投稿記事 by lbfuvab » 17年前

え~と、自分のソースで
uint32 GetDCV(uint32 va,uint32 vb);    //最小公倍数(内部で_DCVを呼ぶ)
って書いてましたけど
uint32 GetDCV(uint32 va,uint32 vb);    //最大公約数(内部で_DCVを呼ぶ)
の間違いです。
サーセン。

へろりくしょん

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#11

投稿記事 by へろりくしょん » 17年前

>標準ライブラリの<setjmp.h>。
>使いたくないってのを通り越して、存在自体を忘れてました。

あまりにもインパクトが強すぎて、どういうわけだかいつも心の片隅にぽつねんと居座っています。
小さい頃からの数度の引っ越しに生き抜いた書籍やぬいぐるみのような存在です。
あるいはずっと昔に買った全く信じていないお守りのような物かもしれません。

とは言っても過去に1度しか使ったことはありませんが。


そんな経験ってありませんか?

ibis

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#12

投稿記事 by ibis » 17年前

そういえばこんなのがありました。

自作の型演算ライブラリ。
型の大きさの比較とか、その他いろいろ。
クラスの階層関係は、既にBoostにあったので割愛。
何故か整数拡張や通常の算術型変換も実装してますが、
用途を思いつかなくて苦悩。
bccで使えないっぽいので、long longとかは対応してません。

バグ

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#13

投稿記事 by バグ » 17年前

>>ibisさん
bccでlong longを使用する場合は、__int64型で代用されるのも1つの手かと思います(^-^)
あくまでも、long long型が64ビット整数だというのが前提ですが…(^_^;)

たかぎ

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#14

投稿記事 by たかぎ » 17年前

> bccで使えないっぽいので、long longとかは対応してません。

確か、バージョン5.6.xあたりからは使えますので、入れてもよいかと思います。

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#15

投稿記事 by » 17年前

>>バグさん
コマンドプロンプト上で動くリバーシを作成しているのですが、
「少し色が変えられたら……」と思っていたのでこっそりCConsoleクラス(?)を使用させて頂きました。
クラス、ライブラリなどがどういったものかという知識も、
APIに関する知識もないのでどういう仕組みで動いているのかは分かりませんが、
とにかく白黒が当たり前だと思っていたコマンドプロンプトに色がついた時はちょっと感動しました^^;
この場を借りて御礼申し上げます。

バグ

Re:【雑談】こんなの使うのか?みたいな関数やクラスの紹介

#16

投稿記事 by バグ » 17年前

>>柏
お役に立てたようでなによりでした(^-^)
私はコンソールアプリで落ち物パズルを作るのが好きなのですが、その際に描画関係の関数を毎回コピペするのが面倒に感じたのが、あのクラス作成の切っ掛けだったりします。
リバーシを作るのでしたら、前景を白or黒に、背景を緑色にするとそれっぽくなりそうですね。

閉鎖

“C言語何でも質問掲示板” へ戻る