タグ

ブックマーク / codezine.jp (38)

  • Windows実行ファイルのバイナリ概要:CodeZine

    はじめに アプリケーションを起動させるEXEファイルを、普段何気なく実行していることと思います。皆さんは、このEXEファイルの中身について考えてみたことはありますか? 連載は、そのEXEファイルの内部構造がどのようになっているのかを解説していくものです。 EXEファイルには具体的に、どのような情報が格納されているのでしょうか。通常、Visual C++やVisual Basic、Delphiなどのコンパイラが自動的に生成してくれるので、考えることはありませんが、今回はこの疑問に真っ向から勝負を挑んでいきます。EXEは魔法の箱? 筆者は「ActiveBasic」というネイティブコンパイラ搭載型の統合開発環境を開発しています。コンパイラ開発イコール、EXEファイルの仕様をかなり細かい部分まで理解しなければならないという状況に置かれることを意味します。 Javaや.NETが騒がれる昨今、あえて

  • DbgHelpを利用してDLLがエクスポートしている関数を列挙する:CodeZine

    はじめに 記事では、DbgHelpを利用してDLLがエクスポートしている関数を表示するプログラムを作成し、DLLやEXEなどのPE形式のファイルから情報を得るための手法を示します。対象読者 記事の対象読者は、WindowsC++を利用してツールを作成したり、プログラムの実行時障害の解析を行ったりする方です。 また、Windowsでバイナリを直接操作することに興味をお持ちのバイナリアンも対象です。必要な環境 サンプルプログラムは、Visual Studio 2005のソリューションとして構成してあります。利用したプロジェクトテンプレートはWin32コンソールアプリケーションです。ビルドするには、Platform SDKをインストールしておく必要があります。 同様にPlatform SDKをインストールした環境であれば、Visual C++ 6やVisual Studio 2003でもプ

  • プログラミングと開発者のためのCodeZine:SQLiteで組み込みDB体験(SQLite, C, データベース)

    はじめに そもそもコンピュータのプログラムとは、データの処理を求められるものです。ファイルコンバータなど、単純なプログラムほど、そうした傾向がはっきり現れます。複雑なデータ処理の実現は、プログラマの腕の見せ所でもありますが、自前で不慣れな複雑なデータ構造を実装して、バグに悩まされた経験はありませんか? 1日でサクっと作ってしまう予定が3日になってしまったり、開発の後期になってバグが顕在化したり、なかなか思い通りにはいかないものです。 その一方で、複雑なデータ処理を行うために、データベース(以下、DB)を使うことが一般的になりました。多くのプログラムが、DBと通信して処理を行うように作られています。しかし、一般的なDBは、サービスを提供するプロセスとして実装されているので、ちょっとした用途のために、DBをインストールして運用するのは、ムダに大袈裟に思えてしまいます。 複雑なデータ処理にはDB

  • CodeZine:プロトタイプ(prototype)によるJavaScriptのオブジェクト指向(プロトタイプ, オブジェクト, Javascript, ECMASCript)

    はじめに JavaScriptはオブジェクト指向言語です。しかし、そのオブジェクトの性質は、他に良く知られているオブジェクト指向言語のJavaC++と大きく異なっています。 そこでこの記事では、なぜそのような違いがあるのか、JavaScriptにおけるオブジェクト指向の言語思想を見ていくと共に、その違いの根幹であるプロトタイプについて解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(JScript、ActionScript)でも通じる内容になっています。 対象読者 プログラミングの基的な知識、ならびにオブジェクトやメソッドと言った基礎的な概念については、ここでは解説しません。最低限、オブジェクト指向プログラミングについて

  • CodeZine:JavaScriptにおけるオブジェクトの基本的性質

    はじめに JavaScriptはオブジェクト指向言語です。従って、そのプログラミングは、オブジェクトの生成やプロパティの参照、メソッドの実行などを組み合わせる作業と言えます。つまり、オブジェクトを上手く扱うことができなければ、JavaScriptの良いコードは書けません。また、JavaScriptにおけるオブジェクトの考え方は、JavaC++とは根的に違っています。 そこで、この記事では、JavaScriptにおけるオブジェクトの基的な性質について見ていくと共に、JavaC++といった他のオブジェクト指向言語との違い、JavaScriptにおけるオブジェクトの扱い方などを解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(

  • S2Container.NETのDIとAOPを活用し生産性の高いシステムを構築する:CodeZine

    はじめに 『システム構築の現場にもっと「易しさ」と「優しさ」を』というコンセプトのもとに開発が進められている「Seasar2」というオープンソースをご存知でしょうか。「Seasar2」はDIコンテナとAOPという便利な機能を提供するJavaのフレームワークで、今後の開発の基盤として注目を集めています。稿では「Seasar2」を.NET環境に移植した「S2Container.NET(以降s2dotnet)」と呼ばれるプロダクトを紹介します。対象読者 .NETにて開発を行っている方で、設計やフレームワークなどに興味を持っている方を対象とします。必要な環境 サンプルはVisual Studio .NET 2003で作成され、.NET Framework 1.1、s2dotnet 1.0.0で動作確認をしています。s2dotnetとは 「s2dotnet」は、杉和也氏と佐藤太一氏が中心となって

  • Internet Explorerの認証パスワードとオートコンプリートの操作:CodeZine

    はじめに Internet Explorerでは、認証パスワードの記憶やオートコンプリートを有効にしていると、それぞれのデータがコンピュータに保存されます。しかし、その内容を操作する方法は、一般には公開されておらず、また、一覧を表示する機能も無いため、ユーザは、現在利用しているコンピュータでどのようなデータが保存されているのかさえ知ることはできません。稿では、これらのデータを一覧するサンプルを作成し、その操作方法を解説します。 対象読者 WindowsC++を使用してネットワーク関連のプログラムを作成される方。 Internet Explorerをサポートするプログラムに興味をお持ちの方。 必要な環境 サンプルプログラムは、Windows 98/NT/2000/XPで動作します。 サンプルコードは、C++ Builder6およびMicrosoft Visual C++

  • Microsoft C#でのHTML構文解析:CodeZine

    稿では、VB.NETを利用し、簡単な機械語で動く仮想CPUを作ることでバイナリプログラミングを満喫します。実際の業務で直接使えるケースは少ないと思いますが、デバッグやプログラミングの地力向上に役立つでしょう。今回はINC命令とDEC命令の実装を通じて、長さが違う機械語の実装法を解説します。 Visual Studioには、標準でたくさんのコントロールが用意されていますが、 ComponentOne Studio(コンポーネントワンスタジオ)には、さらに便利なコントロールが多数収録されています。この連載ではこれらのコンポーネントを組み合わせて売上管理アプリケーションを作っていきます。まずは、売上データ一覧表の項目として、 ComponentOne Studioに収録されているFlexGridを使いながらアプリケーションの土台を作成します。

  • CodeZine>.NETでIEツールバーを作る

    はじめに 今までは、IEツールバーを作成するためには、C++, ATL などといった知識が必要でした。.NETでは、そういった知識は必要なく、Pavel Zolnikov氏が作成したBandObjectsというフリーのクラスライブラリを利用することで、簡単にツールバーが作成できます。 ここでは、サンプルとして、C#でPerformanceCounterを使ったLANの転送速度メーターを作成します。 必要な環境 Visual C# 2003(Visual Studio.NET 2003)以降 BandObjects BandObjectsの入手・ビルド CodeProjectの記事「Extending Explorer with Band Objects using .NET and Windows Forms」より、BandObjectsを入手します。ソースコードにて配布さ

  • Transact-SQLを使用したデータベース開発に役立つ13のヒント:CodeZine

    .NET、Visual FoxPro、SQL Server、Crystal Reportsによる独自のWebソリューション/デスクトップソリューションを提供するコンサルティンググループ「Common Ground Solutions」の創業者兼主任コンサルタント。ソフトウェアアプリケーションの開発経験は17年に及ぶ。米農務省からシステムオートメーション関連の賞をいくつか受賞。また、6桁の投資見返りを実現するソリューションを開発したことによりFortune 500企業から特別表彰を受ける。保険、会計、環境衛生、不動産、出版、広告、製造、金融、日用品、貿易振興など多様な業界に携わった経験を持ち、さまざまな形態で独自のトレーニングも行っている。

  • http://codezine.jp/a/article.aspx?aid=90

  • http://codezine.jp/a/article.aspx?aid=76

  • 非同期でfindstrを実行する文字列検索ツールの作成:CodeZine

    はじめに Windowsのコマンドラインツールにfindstrという文字列を検索するツールがあります。複数のファイルを対象に、特定の文字列がそのファイル中に存在するかを検索するにはfindstrは便利なツールなのですが、コマンドラインから実行するツールであるため残念ながら使い勝手があまりよくありません。そこで、Windowsアプリケーションからfindstrを呼び出して使い勝手のよい文字列検索ツールを作成してみました。 このツールを例に、.NET Frameworkから外部のプログラムを実行する方法と非同期で処理を実行する方法を説明します。 対象読者 .NET Frameworkを用いてWindowsアプリケーションを開発している方。 必要な環境 .NET Framework 1.1がインストールされたWindows XPマシン。 サンプルプログラムの概要 このサンプルプログラムでは、上段

  • .NET以前に使用していたOCXやDLLの使い方:CodeZine

    はじめに Visual Studio .NET (以下、VS.NET) 以前のVisual Studioで使用していたMicrosoft Comm Control (MSComm) やグレープシティ社製品のSPREAD、VS-View、VS-FlexGridなどのOCXやDLLをVS.NETで使いたいと思った事はありませんか? 稿では、過去に購入したり、作成したりしたOCXやDLLをツールボックスに追加して利用する方法を紹介します。 動作保証はされていませんし、サポートもされていませんので、使用する際にはくれぐれも自己責任でお願いします。また、調査の結果、グレープシティ社製品のActiveReportsはかなりの努力と根性、時間、技術が必要と思われますので、別の方法を考えたほうが良いかと思います。例えば、ActiveReports for .NETを購入するとか…(回し者ではありません

  • log4netでデバッグや障害解析に役立つログを出力する:CodeZine

    はじめに 稿では、開発から運用まで一貫して利用できるロギングライブラリの「log4net」を紹介します。 読者の皆さんは、アプリケーションの挙動を確かめるために、メッセージボックスを表示(MessageBox.Show)させたり、デバッグウィンドウにメッセージを出力(Console.WriteLine)していませんでしょうか。これらの方法は手軽な反面、リリース前にMessageBox.Showをコメントアウトしなければいけない、Console.WriteLineの出力メッセージを実行形式のモジュールから見ることができないなど、番運用には適しているとはいえません。しかし、log4netを使用すると簡単に効果的なログ出力が可能になります。対象読者 .NETにて開発を行っている方を対象としています。必要な環境 サンプルはVisual Studio .NET 2003で作成され、.NET Fr

    cx20
    cx20 2005/05/06
    いつになったら beta でなくなるんだろう?
  • .NETによるプラグイン機能を持つテキストエディタの作成(.NET, C#, プラグイン, リフレクション)

    はじめに Adobe PhotoshopやBecky! Internet Mailなどのアプリケーションでは「プラグイン」(または、「アドイン」、「エクステンション」等)と呼ばれるプログラムをインストールすることにより、機能を拡張することができます。この記事ではこのようなプラグイン機能を持ったアプリケーションの作り方を、プラグイン対応のテキストエディタを作成することにより、説明します。 ここで紹介するプラグイン機能は、Becky!のように、プラグイン体であるDLLファイルを指定されたフォルダにコピーすることにより、プラグインを使用するアプリケーション(ホスト)が自動的にプラグインを認識するというものです。 なお、プラグイン機能の解説が目的のため、テキストエディタはフォームにRichTextBoxを貼り付けただけの貧弱なものですので、テキストエディタ作成の参考にはなりません。 対象読

    cx20
    cx20 2005/04/21
  • OutlookをVBAでRSSリーダーにする:CodeZine

    この記事の対象は「Outlook Express」ではなくてMicrosoft Officeの「Outlook」のことです。Outlook ExpressにはVBAが利用できないため、この記事は有効ではありません。 対象読者 VBAを使ったプログラムの経験者を想定しています。 必要な環境 Microsoft Outlookと、MSXML 4.0 Service Pack 2以上が必要です。XMLの解析に複雑なことはしていないので、MSXML 3.0 Service Pack 5 (SP5)でも大丈夫でしょう。 COMアドインによるOutlookRSSリーダー化 OutlookRSSリーダーにする方法の一つとしては、Outlookの「COMアドイン」を使用するというのがあります。[ツール]→[オプション]→[その他]→[詳細オプション]を選択し、[COMアドイン]をクリックし

    cx20
    cx20 2005/04/07
    へぇ。
  • CodeZine:プログラミングに役立つソースコードが満載な開発者のための実装系Webマガジン

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    CodeZine:プログラミングに役立つソースコードが満載な開発者のための実装系Webマガジン
    cx20
    cx20 2005/04/05
    日本語版 CodeGuru?でもまだ記事は少ない模様。今後に期待。翔泳社。