Visual C++ 2005 Express Edition で DLL を作成する

観測気球

収集物の記録書庫 a data archive of collection -- collectible toys

[要旨] Visual C++ 2005 Express Edition で Win32 な DLL を作成できるように環境を整えるにはどうすればいいかをまとめてみました。
[キーワード] Visual C++,Win32,コンソールアプリケーション,DLL

Visual C++ 2005 Express Edition で DLL を作成する

素の Visual Studio C++ 2005 Express Edition では、DLL どころか Win32 アプリケーションは作成できません。Win32 アプリケーションを作成できるようにするためには、Platform SDK をダウンロードし、インストールする必要があります。

すでに、Platform SDK がインストール済みの状態で、後から Visual Studio C++ 2005 Express Edition をインストールする場合は、VC++ Express のインストール時に自動的に Win32 アプリケーションを作成するためのテンプレートが組み込まれますが、先に Visual Studio C++ 2005 Express Edition をインストールし、後から Platform SDK をインストールする場合は、以下のような作業をすることで、Win32 アプリケーションを作成することができるようになります。詳細は「Using Visual C++ 2005 Express Edition with the Microsoft Platform SDK」を参照してください(1033版に合わせて書かれたものなので、ちょっと記述が古いです。ちなみに、2006年5月17日時点では 1041版が最新です)。
(2006年8月16日追記: 1041版に対応して書かれたもの、かつ日本語で書かれたものが公開されています。「Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う」を参照してください。とっちゃん氏の「Visual Studio 2005/Visual C++ 2005 Express Edition に PlatformSDK を統合する(改訂版)」という記事も参考になります)

  1. %USERPROFILE%\Local Settings\Application Data\Microsoft\VCExpress\8.0 の直下にある vccomponents.dat という名前のファイルを編集します。以下のように C:\Program Files\Microsoft Platform SDK 云々を追加します(C:\Program Files\Microsoft Platform SDK に Platform SDK をインストールした場合)。すでに存在する場合は、改めて追加(編集)する必要はありません。
    [VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directories]
    Include Dirs=$(VCInstallDir)include;$(VCInstallDir)PlatformSDK\include;$(FrameworkSDKDir)include;C:\Program Files\Microsoft Platform SDK\Include
    Reference Dirs=$(FrameworkDir)$(FrameworkVersion)
    Library Dirs=$(VCInstallDir)lib;$(VCInstallDir)PlatformSDK\lib;$(FrameworkSDKDir)lib;$(VSInstallDir);$(VSInstallDir)lib;C:\Program Files\Microsoft Platform SDK\Lib
    Source Dirs=$(VCInstallDir)crt\src
    Exclude Dirs=$(VCInstallDir)include;$(VCInstallDir)PlatformSDK\include;$(FrameworkSDKDir)include;C:\Program Files\Microsoft Platform SDK\Include;$(FrameworkDir)$(FrameworkVersion)
    Path Dirs=$(VCInstallDir)bin;$(VCInstallDir)PlatformSDK\bin;$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(FrameworkSDKDir)bin;$(FrameworkDir)$(FrameworkVersion);$(VSInstallDir);$(PATH);C:\Program Files\Microsoft Platform SDK\Bin
    
  2. %ProgramFiles%\Microsoft Visual Studio 8\VC\VCProjectDefaults 直下の corewin_express.vsprops を開き、以下のように編集します。
    • 編集前
      		AdditionalDependencies="kernel32.lib" />
      
    • 編集後
      		AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib" />
      
  3. %ProgramFiles%\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1041 直下の AppSettings.htm を開き、441行目~444行目を以下のようにコメントアウトします。
    • 編集前
      	 	WIN_APP.disabled = true;
      	 	WIN_APP_LABEL.disabled = true;
      	 	DLL_APP.disabled = true;
      	 	DLL_APP_LABEL.disabled = true;
      
    • 編集後
      	  //	WIN_APP.disabled = true;
      	  //	WIN_APP_LABEL.disabled = true;
      	  //	DLL_APP.disabled = true;
      	  //	DLL_APP_LABEL.disabled = true;
      

以上で、VC++ 2005 Express でも Win32アプリケーション(と DLL)が作成できるようになります。

コマンドラインで DLL をビルドする方法は 「EmEditorのプラグインをVisual C++ 2005 Express Edition で作成する」 が参考になります。この記事は、VC++ 2005 Express で MFC を利用する上での参考(ヒント)にもなるので、一通り目を通しておくといいと思います。

次に、統合開発環境の方で Win32アプリケーションや DLL を作成する方法ですが、VC++ 2005 Express を起動した後、「ファイル - 新規作成 - プロジェクト」と辿り、「新しいプロジェクト」ダイアログを開きます。このダイアログで「プロジェクトの種類」として「Win32」を選択すると、「Win32 コンソールアプリケーション」というテンプレート(ウィザード)が選択肢として表示されますので、それを選択し、新しいプロジェクトを作成してください。

「新しいプロジェクト」ダイアログ
「新しいプロジェクト」ダイアログ

プロジェクト名(例えば、dlltest)を入力して、「OK」ボタンをクリックします。

Win32ウィザード
Win32 アプリケーションウィザード

「Win32 アプリケーションウィザード」が表示されるので、「次へ」をクリックします。

DLL を選択します
DLL を選択

アプリケーションの種類は「DLL」を選択し、「完了」をクリックします。

ソースファイルの雛形が生成される
プロジェクトファイルとソースファイル(の雛形)が生成される

以上で、プロジェクトが生成されるので、あとは、ソースファイルをがしがし書いて、作りたい DLL を作成するだけです。

ソースが書けたら、必要に応じて、「プロジェクト」のプロパティをいじってビルド環境を整え、ビルドします。この辺は、従来の Visual C++ と同じです。Visual C++ Ver.6 の場合は、まだ「プロパティ」の概念が導入されていないので、「プロジェクト - 設定」や「ビルド - 構成」 などをいじって目的を達成していましたが、Visual C++.NET 2002 以降は、プロパティをいじるだけでいいので、少し楽になっています。

今まで Visual C++ Ver.6 で DLL を作成していた場合は、そのプロジェクトファイルを持ってきて、VC++ 2005 Express で開けば(ソリューションファイルに変換すれば)、自動的に(それなりの)プロパティの設定が実行されるので、そのままビルドすれば OK です。多少、warning が出ると思いますが、とりあえず、無視して OK。あとでじっくりつぶしていきましょう。

投稿者: tsupo 2006.05.17 午前 05:31 | 固定リンク | このエントリーをはてなブックマークに追加 | このエントリを del.icio.us に登録 このエントリの del.icio.us での登録状況 | このエントリを Buzzurl に追加このエントリの Buzzurl での登録状況 | このエントリをlivedoorクリップに登録 このエントリのlivedoorクリップでの登録状況 このエントリをlivedoorクリップに登録している人の数 | 酢鶏巡回中

楽天市場


品揃え豊富で安い!NTT-X Store


アマゾンわくわく探検隊

トラックバック

この記事のトラックバックURL:

この記事へのトラックバック一覧です: Visual C++ 2005 Express Edition で DLL を作成する:

コメント

ワード

ニッセン

fujisan.co.jp

楽天市場