タグ

C++に関するwackyのブックマーク (199)

  • 画像からASCIIアートを自動生成する:CodeZine

    実行例の元画像(kingyo.gif) はじめに 文字を組み合わせて絵を表現する「アスキーアート」を知らない方はいないと思いますが、これを作れるのは一部の職人だけです。とても素人が作れる代物ではありません。しかし稿で紹介する手法を用いれば、職人には遠く及ばないまでも、誰でも簡単にアスキーアートを作ることができます。 画像からアスキーアートを自動生成するのに問題となる事柄は次のとおりです。文字を画像に変換する方法余白を含めたフォントサイズを取得する方法画像に最も近い文字を判定する方法  また単色である文字と画像とを比較するために画像を2値化する方法  も解決しなければなりません。稿ではこれらについて一つ一つ解説していきます。さらにHTMLにも対応することで文字の色やフォントを指定できるようにしました。対象読者 「C言語」「Win32API」および「DIBSection」を理解している方。

    wacky
    wacky 2006/04/01
    画像に最も近い文字を判定してアスキーアートを自動生成する方法。
  • プログラミング・開発者・ソースコード CodeZine:軽量で高速なハイパーリンクコントロールを実現するC++クラス(ハイパーリンク, コントロール, Win32, MFC)

    この連載では、Bjarne Stroustrup氏へのメールインタビューを通して、プログラミング言語設計者の生の声を読者の皆様に直接お伝えしたいと思います。今回は、 Stroustrup氏が考える”プロ意識”について伺いました。現在、大学で未来のC++プログラマーを育てる同氏にとって”プロ意識”とは?

    wacky
    wacky 2006/03/15
    Win32 APIとMFCの両方で使えるハイパーリンクコントロールの自作。
  • PHP の unserialize() の 多言語での実装

    PHP の unserialize() の 多言語での実装 2006-02-28-1: [PHP][JavaScript][Perl][Ruby] を見ていて,PHP の serialize() は便利だから,もしかしたら他の言語でも実装があるのでは? と思ったら,案の定たくさんあった. - JavaScript http://www.phpguru.org/static/PHP_Unserialize.html http://www.phpguru.org/downloads/PHP_Unserialize/ - Perl http://search.cpan.org/dist/PHP-Serialization/lib/PHP/Serialization.pm http://hurring.com/code/perl/serialize/ - Ruby http://www.aagh.

    wacky
    wacky 2006/03/02
    PHPのunserialize()の各言語向け実装のまとめ。シリアライズされたPHP変数を様々な言語で取り扱う。(関連: http://neta.ywcafe.net/000544.html
  • DirectShowを利用した透明ウィンドウでのビデオ再生:CodeZine

    はじめに 簡易にストリームデータを取り出す事ができるDirectShowを利用する事により、取得したフレーム画像をリアルタイムでGDI描画に利用する事ができます。 今回はこの機能をWindows2000、XPの透明なウィンドウと組み合わせてみます。対象読者 C++のコードを使える事とWINAPIをある程度理解している必要があります。それと、かじった事がある程度でいいのですが、DirectShowを使った事が前提となります。 DirectShowについては、次のサイトが一番参考になると思います。Geekなぺーじの

    wacky
    wacky 2006/02/24
    DirectShowと透明なウィンドウを組み合わせる事により、透明なウィンドウでビデオ再生を行う方法の解説。
  • プログラミングの良書100冊!(12)

    様々な分野の知識を身に付ける OSやCPUに関する知識以外にも,開発するプログラムによっては様々な知識が必要になります。例えばネットワーク関連のプログラムを作るならソケットやプロトコルの知識が,画像フィルタを作るなら画像変換アルゴリズムについての知識が必要です。一般にこうした知識は,必要になった時点で勉強する,くらいに思っておけばいいでしょう。 ただ,それとは別に,何年かプログラミングをしていれば必ず必要になる知識というものも存在します。例えば,文字コードや構文解析といった知識は,20年以上CやC++でプログラミングしてきた人なら必ずどこかで学んでいるはずです。以下ではこうした知識を身に付けるためのをいくつか紹介します。 最初はマルチスレッド・プログラミングです。言葉は知っていても,初心者には手を出しにくいイメージがあるかもしれません。実際,マルチスレッド・プログラミング特有の,同期化な

    プログラミングの良書100冊!(12)
    wacky
    wacky 2006/02/21
    C/C++でWindows用アプリケーションを作成するのにお勧めの書籍(続き)。マルチスレッド、文字コード、データ圧縮アルゴリズム、暗号化など。
  • プログラミングの良書100冊!(11)

    アーキテクチャ徹底解説 Microsoft Windows 2000(上/下) David A. Solomon, Mark E. Russinovich 著 多摩ソフトウエア 訳 日経BPソフトプレス 発行 2001年4月 503ページ+CD-ROM(上), 408ページ+CD-ROM(下) 4179円(上/下,税込) 32ビットコンピュータを やさしく語る はじめて読む486 蒲地 輝尚 著 アスキー 発行 1994年10月 494ページ 2548円(税込) 最近はJavaで開発したGUIアプリケーションも少なからず見かけるようになったものの,「OSやハードウエアが用意する機能をフルに生かしたい」「パフォーマンスが非常に重要だ」といった場合は今でもC/C++が最良の選択肢であることは間違いありません。市販のWindowsアプリケーションやゲームのほとんどすべてがC/C++で組まれている

    プログラミングの良書100冊!(11)
    wacky
    wacky 2006/02/20
    C/C++でWindows用アプリケーションやデバイスドライバを開発するためにお勧めの書籍。
  • 次期Visual Basicは動的言語の一部機能を搭載へ

    Visual Basic(VB)の次期版9.0の言語仕様が明らかになってきた。2月2~3日に横浜で開催されたMicrosoft Developers Conference 2006の講演,およびマイクロソフトのWebサイトに掲載されているドキュメントによれば,VB 9.0は動的言語を意識したものになるようだ。1月17日に公開されたVB 9.0 LINQ Technology Previewをインストールすれば,実際にコードの動作を確認することもできる。以下では,VB 9.0の新機能のうち,動的言語と関係の深い「暗黙の型のローカル変数」「動的インタフェース」「動的識別子」の3つに注目し,その概要を紹介する。 ●暗黙の型のローカル変数 VB 9.0では,ローカル変数を宣言する際に,型を明示的に指定しなくてもコンパイラが初期化に使用する値を基に推測してくれる。例えば, Dim Age = 39

    次期Visual Basicは動的言語の一部機能を搭載へ
    wacky
    wacky 2006/02/10
    VB9.0やC# 3.0では、暗黙の型のローカル変数をサポート。C++の次期ISO標準(C++0x)でも同様の機能を追加することが検討されているとのこと。
  • プログラミングの良書100冊!(2)

    プログラミングの第一歩は,とにかくプログラミング言語の文法を学ぶことです。以下,主要な言語別にお薦めの書籍を紹介していきましょう。 C言語 C言語の入門書と言えば,誰もが最初に挙げるのがBrian W. KernighanとDennis M. Ritchieが著した「プログラミング言語C第2版」です。このは著者2人の頭文字をとってK&Rとも呼ばれ,長い間Cプログラマの間で「バイブル」「原典」とされてきました。書の第1版に「Cの言語仕様を定義する」という役割があったことが大きな理由です。実際,初期のコンパイラはこのの巻末資料をもとに作られたものです。もっとも現在はANSIやISO/IECが言語仕様を策定しているため,厳密な仕様を知りたければそれらの仕様書を見るのが筋と言えるでしょう。 K&Rの良い点は,入門書としてわかりやすいことに加え,C言語の設計思想を開発者自身の言葉で読める点で

    プログラミングの良書100冊!(2)
    wacky
    wacky 2006/02/07
    C、C++、Java、C#、VisualBasic.NETの各言語でお勧めの書籍。
  • 本格的なシューティングゲームを実現するタスクシステム:CodeZine

    はじめに タスクとは「Windowsはマルチタスクだ」という時のタスクに同義ですが、プログラム的にはオブジェクトに近いです。シューティングゲームを作る場合は「自機」「敵」「敵出現制御」「得点管理」「タイトル画面」など、ゲームを構成する全ての要素をタスクとします。 タスクシステムとは、これら複数のタスクを管理する仕組みであり、現在でもプロの現場で用いられています。長所は次の通りです。ジャンルを問わず様々なゲームに適用できる並列処理をうまい具合に実現できるゲームの流れを自然な形で表現できる大規模なゲームも開発できるタスクごとに独立しているため、複数人で開発できる  一方の短所は、タスクシステムの歴史が古いことに起因する、高すぎる自由度です。さまざまな実装方法があり、またオブジェクト指向が一般的ではなかった時代の手法なためか、スパゲティプログラムや、データの隠蔽化が不十分なプログラムとなっている

    wacky
    wacky 2006/02/03
    オブジェクト指向に基づいたタスクシステムを実装し、シューティングゲームを作成する方法を解説。
  • 高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」:CodeZine

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは2003年に提案されたデータ構造、wavelet tree(以下「WT」と表記)です。WTは圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。WTは文字列T[0...n-1]が与えられた時、次の2つの操作を定数時間でサポートします。rank(p, c)――T[0...p]中のcの出現回数を返すselect(i, c)――(i+1)番目のcの位置を返す  WTの作業領域量は、文字列をそのまま保存した時の約2倍程度です。対象読者 C++の利用

    wacky
    wacky 2006/01/26
    2003年に提案されたデータ構造「WT (wavelet tree)」について。『WTの作業領域量は、文字列をそのまま保存した時の約2倍程度。』
  • お手軽パーザー

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

    wacky
    wacky 2006/01/24
    『10分で書けるお手軽パーサー』と題して、再帰的降下型/LL(1)文法による構文解析を解説。C言語での実装例も。
  • Standard Template Library プログラミング on the Web

    1985年、AT&TのBjarne StroustrupがC++をこの世に送り出しました。その後C++は様々な拡張を繰り返しながら進化してきました。 1991年、ISOはC++の国際標準(standard C++)を定める作業を開始しました。標準C++の最終草案は1997年にISO C++標準化委員会に承認されました。 標準C++が規定するのは言語仕様だけなく、C++標準ライブラリも規格の中で明確に定められています。それまでC++のライブラリといえばiostreamぐらいのものでしたし、それもあくまで"事実上の標準"でしかありませんでした。 そしてそのC++標準ライブラリの一部として組み入れられたのがSTL(Standard Template Library)です。すなわちSTLは標準C++の仕様の一部ということです。 僕がSTLを知ったのは1995年、いくつかのコンパイラがtemplat

    wacky
    wacky 2006/01/20
    επιστημη(えぴすてーめー)氏のSTLに関する単行本。絶版に伴いWeb版として公開。
  • はてな 急にSTLをちゃんと勉強したくなりました。以下の条件を満たすSTL入門サイトを教えてください-日本語-コードサンプルが豊富-「美しさ」などの思想がか・・

    急にSTLをちゃんと勉強したくなりました。 以下の条件を満たすSTL入門サイトを教えてください -日語 -コードサンプルが豊富 -「美しさ」などの思想がかいてある(なくてもいいです) よろしくお願いします。

    wacky
    wacky 2006/01/19
    日本語で、コードサンプルが豊富で、「美しさ」などの思想がかいてあるSTL入門サイト。id:higepon氏による質問。
  • プログラミング情報誌「C MAGAZINE」が休刊か | スラド レビュー

    あるAnonymous Coward曰く、"1989年創刊で、国内で最も歴史が長いプログラミング専門誌の一つと思われるC MAGAZINE(月刊/ソフトバンク クリエイティブ発行)が休刊となるようだ。ニュース元はIT関連メディア専門の広告代理店であり、IT系メディアのニュースサイトを運営しているf/x(エフエックス)の2006年1月13日の記事で、同じくソフトバンク クリエイティブ発行の「パソコン購入ガイド」誌と共に、3月発売号で休刊となるそうだ。 ソフトバンク クリエイティブは最近ライトノベルを刊行したり、レイザーラモンHGの関連を出したりと、一般向けの書籍に力を入れている様子。一方でPC関連雑誌は次々と休刊されており、これから同社の他のPC関連雑誌も同様に、切り捨てられる可能性も考えられる。 個人的にはC MAGAZINEは学生時代からの読者であり、今の自分のプログラミング技術はこの

    wacky
    wacky 2006/01/18
    ガーン!!プログラミング系雑誌がまた一つ消えてしまう。
  • CodeZine>C++による開発で陥りやすい問題点の検証

    wacky
    wacky 2006/01/17
    配列や参照、一時オブジェクト、オーバーロードとオーバーライドなどC++言語仕様の基礎を復習する。
  • MS、VS 2005 Express Edition日本語正式版の無償公開開始 | スラド デベロッパー

    あるAnonymous Coward曰く、"窓の杜の記事によると、先月/.Jでも話題となったVisual Studio 2005 Express Edition の日語正式版の一般向け無償公開が開始されたそうだ。 日語版には、VB、VC++、VC#の各Express Editionと、Web開発環境Visual Web DeveloperのExpress Editionの4製品が含まれる。Java開発環境のJ#については英語版のみの提供となるようだ。 また、VSには含まれないが、SQL ServerのExpress Editionも提供される。 現在ISOイメージのみが提供されている。ファイルサイズが大きいためタレコミ者はまだ試していないのだが、使用してみた方の感想を伺いたい。"

    wacky
    wacky 2005/12/22
    Visual Studio 2005 無償配布に関するスラドのストーリー。Platform SDK を入れる際の注意点など。他にも何か有益な情報がないか後でチェック。
  • サン・マイクロシステムズ

    Oracle DatabaseWorld の全セッション動画が日語字幕付きにて視聴いただけます。自然言語による問合せ、AIベクトル検索、True Cache, JSON Duality, OCI GoldenGate Stream, GoldenGate 23ai, SQL Firewall, 23aiの高可用性、など様々なトピックを扱っています。

    wacky
    wacky 2005/12/22
    Sunによる C/C++, Fortran の無償の開発環境。LinuxとSoralis上で動作する。日本語版。
  • DirectX Graphicsの隠し設定を利用した開発テクニック:CodeZine

    はじめに Windows OSにはコントロールパネルから変更できない多くの設定が存在し、それらの設定の多くはレジストリやiniファイルに格納されています。これと同じように、DirectX Runtimeにもいくつかのシステムレベルの設定が存在します。これらの設定は、エンドユーザにとってはあまり役立つものではありませんが、開発者が用いればデバッグや問題解決に利用できる有用なパラメータとなります。この記事ではこれらDirectX Graphicsの隠れた設定について、実装上のテクニックを交えながら紹介してゆきます。なお、以下で特に注釈がない場合、「DirectX」はDirectX 9.0cのDirectX Graphicsを指すと考えてください。 今回紹介するテクニックは、DirectX開発者のみに送るものではありません。デバッグで困ったときや既存ライブラリに機能を追加したいときなど、さまざま

    wacky
    wacky 2005/12/20
    DirectX Graphicsの裏技・デバッグ技。
  • ソースコード - PDF関連のプログラムコードやDLL

    以前はPDF関連ツールのソース(Delphi)を公開していましたが、配布するのはやめました。そのかわりにC++/VB/Delphiで利用可能なDLLを出しましたのでこちらをご利用してください。 せっかくこのページにきたので、おまけのコードでも出しておきます。ご自由に使ってください。 jpeg2pdf JpegファイルをPDFファイルに変換(C/C++) jpeg2pdf JpegファイルをPDFファイルに変換(Delphi) bmp2pdf BMPファイルをPDFファイルに変換(Delphi) txt2pdf テキストファイルをPDFファイルに変換(C++) txt2pdf テキストファイルをPDFファイルに変換 (Delphi) 「Delphi」以外の言語はあまり得意ではないので注意してください いきなりプログラミング雑談?>< 2年ぶりにソースをみたんですが、Delphiはだい

    wacky
    wacky 2005/12/20
    テキストファイルやJPEGファイルをPDFファイルに変換するためのDelphi/C++のソースコードを公開。
  • 落ち物ゲームの作り方 第2回:「聖夜の落とし物」編:CodeZine

    はじめに 稿では、第1回で解説した「TETRA」とは別の落ち物ゲーム「聖夜の落とし物」を作ります。「聖夜の落とし物」も、ある有名な落ち物ゲームを模しています。ルールを簡単に説明すると、次の通りです。 このゲームでは、落ちてくるブロックを積み重ねて、同じ種類のブロックを4個以上つなげることを目標とします。縦横に4個以上つながるとブロックが消え、点数が入ります。上まで積み重ねてしまうと、ゲームオーバーです。 他に「TETRA」と違うところは、浮いているブロックが個別に落下すること(ピース単位ではなく)、それによって続けざまにブロックが消える「連鎖」という動作が起こりうること、です。連鎖するほど得られる点数は増えるので、大連鎖を狙う楽しみがあります。 稿のプログラムは、第1回のサンプルプログラム「TETRA」を基にしています。「聖夜の落とし物」に特有な処理として、4個以上つながっているかの判

    wacky
    wacky 2005/12/16
    落ち物ゲームを作りながらゲームプログラミングを学ぶ。隣接ブロックの判定、ブロックの落下、アニメーションの解説など。