Mobil einternetaplチーム CppUnit を使用した VisualC++ プロジェクト作成方法 Version:1.0 Date:2004/08 /05

Similar documents
Setting up HeapAgent if you’re using

TestDesign for Web

はじめに 本ドキュメントでは Salesforce 標準機能である 変更セット を使用して Visualforce ページ Apex クラスを Sandbox から本番環境に移行する手順を説明します 但し前提条件として Sandbox 本番環境共に SkyVisualEditor がインストールされ

インテル(R) Visual Fortran コンパイラ 10.0

Windows への opensource COBOL 環境の構築手順 0. 前提条件当手順は Windows へ opensource COBOL 環境を構築する手順である 手順確認時の OS と時期は以下の通りである OS Windows 8.1(64bit) 時期 2018/09 1. 構築手

目次 1. システム概要 設置手順 注意事項 動作環境 初期設定 システム設定 ( 環境設定 ) システム設定 ( ログインパスワード変更 ) システム設定 ( ファイルのパスワード変

Microsoft Word - Mac版 Eclipseの導入と設定.docx

C1Live

実習を行う上での心構えについて

作業環境カスタマイズ 機能ガイド(応用編)

Team Foundation Server 2018 を使用したバージョン管理 補足資料

厚生労働省版ストレスチェック実施プログラムバージョンアップマニュアル (Ver2.2 から Ver.3.2) 目次 1. プログラム概要 バージョンアップ実施手順 要注意 zip ファイル解凍の準備 Windows によって PC が保護されました と

WebSAM System Navigator JNS isadmin SNMP Trap 連携設定手順書 NEC 2012 年 12 月

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

Microsoft Word - XOOPS インストールマニュアルv12.doc

intra-mart ワークフローデザイナ

Source Insight

スクールCOBOL2002

2 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C Express の使用法 ( 東海大学理学部物理学科 ) 無償で利用できる開発環境 (Windows XP 以降 ) Visual Studio 2010 Express

WebOTXマニュアル

目次 第 1 章はじめに 電子入札システムを使用するまでの流れ 1 第 2 章 Java ポリシーを設定する前に 前提条件の確認 2 第 3 章 Java のバージョンについて Java バージョン確認方法 Java のアンインストール ( ケース2の

Microsoft Word - ModelAnalys操作マニュアル_

Word 押印メニューバー使用ガイド

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

(3) 図 ファイルの展開先 ( 保存場所 ) 指定画面 が表示されます 参照ボタンを押下すると 図 フォルダ指定画面 が表示されるので 保存先を指定し OK ボタン を押下します 図 ファイルの展開先 ( 保存場所 ) 指定画面 の 展開 ボタンを押下します 図

GettingStartedTK2

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

intra-mart e-Builder ver 5

JUnit 概要 2015/4/16 版今泉俊幸 2015 bbreak Systems 1

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

ServerView Resource Orchestrator V3.0 ネットワーク構成情報ファイルツール(Excel形式)の利用方法

Eclipse マニュアル <作成目的> Eclipse のインストール方法などを紹介したページはいろいろありますが 専門用語がわからない初心者でもわか りやすく Eclipse のインストール方法 基本操作などをまとめたマニュアル作成を目的としています <目次> 1 Eclipse のインストール

<31305F F C815B82C582CC91808DEC8EE88F878F A5F56322E342E786C7378>

PrintBarrierV3L50(V ) アップデート手順書 第 1.01 版 株式会社富士通アドバンストエンジニアリング 平成 25 年 3 月 7 日 1

目次 1. 回答作成手順 2 2. ツールの起動 3 3. 一般情報の入力 6 4. 成分表の入力 9 5. 依頼者情報の入力 エラーチェック XMLファイルの作成 動作設定 ( 任意 ) ( ご参考 ) 各種シートのボタン機能 ( ご参

電子納品チェックシステム利用マニュアル

更新用証明書インポートツール 操作マニュアル 2011 年 10 月 31 日 セコムトラストシステムズ株式会社 Copyright 2011 SECOM Trust Systems CO.,LTD. All rights reserved. P-1

Eclipse 操作方法 (Servlet/JSP 入門補助テキスト)

e 飛伝 Pro システム e 飛伝 Pro バージョンアップ手順書 第 11 版 平成 2 3 年 5 月 2 3 日

Steinberg 社 - VST3 対応シンセサイザービルド環境テンプレート (Windows 版 ) Quick 説明書 はじめにこの度は Steinberg 社 - VST3 対応シンセサイザービルド環境テンプレートをダウンロードして下さり 誠にありがとうございます 本説明書はビルド環境テンプ

フローチャート自動生成ツール yflowgen の使い方 目次 1 はじめに 本ツールの機能 yflowgen.exe の使い方 yflowgen.exe の実行方法 制限事項 生成したファイル (gml ファイル形式 ) の開

Microsoft Word - バーチャルクラス(Blackboard)ログイン方法ガイド.docx

注 ) CDをセットしてから プログラムが起動するまでの時間はパソコン CDドライブの性能によって差がありますが 概ね10 秒程度です 1 分間待ってもプログラムが起動しない場合は もう一度 CDをセットしなおしてください それでも起動しない場合 CDからの自動起動が無効になっている可能性があります

目 次 1. All-In-One プリンタユーティリティ概要 All-In-One プリンタユーティティについて 対応プリンタ機種 システム要件 セットアップ方法 All-In-One プリンタユーティリテ

939061j

24th Embarcadero Developer Camp

Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]

パソコン決裁7 Business 試用版

Java言語 第1回

第 7.0 版 利用履歴管理 ETCPRO5 セットアップマニュアル (Ver5.002) カードリーダモデル変更 ( 表示付き 表示なし ) に伴い 改訂 Windows10 対応に伴い 改訂 参考ホームページサイト :

Shareresearchオンラインマニュアル

InstallShiled FAQ デバイスドライバーのインストール 注 ) このドキュメントは InstallShield 2011 Premier Edition を基に作成しています InstallShield 2011 以外のバージョンでは設定名などが異なる場合もあります 概要 Instal

DPC-0401

SystemDirector Developer's Studio(V3.2) 適用ガイド

1. ユーザ専用ページから 該当パッケージをダウンロードする 手順は 以下になります 1-1 STRWEB ( ) にアクセスしてください A B 1-2 [ ユーザID ] [ パスワード ] A に ユーザ専用ページID ( fcnから始ま

1 Ver デジタル証明書の更新手順 1 S T E P 1 netnaccs 専用デジタル ( クライアント ) 証明書 の更新作業を開始する前に 次の準備を行って下さい (1) お使いになるパソコンのブラウザのバージョンを確認して下さい ( デジタル証明書の取得等は 必ず Inte

KDDI ホスティングサービス G120 KDDI ホスティングサービス G200 WordPress インストールガイド ( ご参考資料 ) rev.1.2 KDDI 株式会社 1

PowerPoint プレゼンテーション

64bit環境で32bitコンポーネントの利用

目次 No. 内容 メニュー名 ページ番号 事前準備 IEバージョン情報確認 互換表示設定 (IE9 IE0 IEの場合 ) 信頼済みサイトへの登録 (IE0 IEの場合 ) 4 受注データを (IE0 IEの場合 ) 6 5 リストを出力する為の設定 (IE0 IEの場合 ) 7 6 ( その)(

WebOTXマニュアル

Taro-QGIS 3.2

事前準備マニュアル

Pirates Buster Series Secure Viewer セットアップマニュアル (Web インストーラ)

AN1609 GNUコンパイラ導入ガイド

Microsoft Word - CBSNet-It連携ガイドver8.2.doc

Maser - User Operation Manual

01_08 インストールガイド

目次 1. XQuartz インストール PlayOnMac インストール Wine のアップデート ターミナル インストール MT4/MT 既知の問題 ターミナルデータ案内 14 2

一般社団法人ビジネス機械・情報システム産業協会

AutoCAD Mechanical 2009 Service Pack 2 Readme 高品質な製品を提供するため オートデスクは AutoCAD Mechanical 2009 Service Pack 2 をリリースしました この Service Pack は AutoCAD Mechani

Maple 18 スタンドアロン版インストール手順

Nero ControlCenter マニュアル

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

CubePDF ユーザーズマニュアル

目次 No. 内容 メニュー名 ページ番号 事前準備 IEバージョン情報確認 互換表示設定 (IE9 IE0 IEの場合 ) (IE0 IEの場合 ) 4 受注データを (IE0 IEの場合 ) 6 5 ( その)(IE0 IEの場合 ) 7 6 ( その)(IE0 IEの場合 ) 8 7 (IE9

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

Transcription:

Mobil einternetaplチーム CppUnit を使用した VisualC++ プロジェクト作成方法 Version:1.0 Date:2004/08 /05

----- ---------------------- ---------------------- ------------------------------------------- 使用上の注意 以下は当文書を利用するにあたっての注意事項です 以下について了承されない方は 速やかに当文書を破棄して下さい 以上 当文書中のすべての情報について! その正確性 有効性は十分配慮していますが 不正確な内容がある可能性があります それら情報の使用の際に生じた損害等については一切の責任は負わないことをご了承下さい Copyr ight 2003-2004 Fujis ystems Inc.,AllRights Reserved. ----- ---------------------- ---------------------- -------------------------------------------

ChangeHistory Date New Category Section Changes Changedby Ver 2004/ 08/051.0 A - 新規作成上野 Category[A:Added,U:Updated,D:Deleted]

目次 1 はじめに... 1 1.1 参考文献... 1 1.2 略語一覧... 1 2 基本方針... 2 3 CppUnit の環境構築... 3 4 Visual C++ 6.0 の設定... 4 5 実プロジェクトの作成... 6 6 テストプロジェクトの作成... 9 7 テストクラスの作成... 13 8 テストプロジェクトに実プロジェクトを追加... 16 9 テストコードの記述... 17 10 実クラスの作成... 19 11 TIPS... 21 11.1 リソースの競合... 21 11.2 MFC のソケットクラスの使用... 23

1 はじめに 本ドキュメントは CppUnit を使用した テストファースト なプロジェクトを MicrosoftVisualC++6.0 (SP5) にて実現させる場合の導入指南書となることを目的としています 実プロジェクトの導入の参考になれば幸いです 1.1 参考文献 [1] 大月美佳著 CPPUNIT による実践テスト技法 秀和システム 2003/07/20 1.2 略語一覧 VC MFC XP URL SDI MDI RTTI 略語 説明 MicrosoftVisualC++6.0 MicrosoftFoundationClass extremeprogramming UniformResourceLocator SingleDocument Interface MultipleDocumentInterface Run-TimeTypeInformation 1

2 基本方針 実プロジェクトとテストプロジェクトを分離する テストコードは非常に有用なものですが 実際のプログラムの動作には必要ありません このため 実プロジェクトのみ納品できるようにプロジェクトを 2 つに分離します UI のテストは自動化しない UI( ユーザインターフェース ) のテストは CppUnit による自動化テストには不向きですので テスト対象外とします ( 例えば XP の場合なら ユーザによる受入テストで実施すべきものです ) つまり テストプロジェクトはコンソールアプリケーションで十分 ということになります MFC の使用について MFC の使用 不使用に関係なく CppUnit を導入することが可能です 以上を踏まえ 本ドキュメントでは以下のような開発環境を構築することとします C: CppUnit CppUnit インストールフォルダ Project VCプロジェクトルートフォルダ Real 実プロジェクトフォルダ (MFCAppWizard(exe) で作成 ) Test テストプロジェクトフォルダ (Win32ConsoleApplicationで作成) また 実クラスとして Dummy テストクラスとして testdummy クラスを作成します Dummy は引数で与えられた自然数を素数であるかどうか判断する isprimenumber 関数を持ちます なお 一度でも CppUnit を導入したことのある環境の場合 3 4 章は飛ばして下さい 2

3 CppUnit の環境構築 CppUnit を以下の URLからダウンロードします https://sourceforge.net/project/showfiles.php?group_id=1795 (2004 /08/05 現在 最新版はバージョン1.10.2 ファイル名は cppunit-1.10.2.tar.gz) ダウンロードしたファイルを解凍し 上記フォルダ (C: CppUnit) にコピーします examples フォルダにある VC 用のプロジェクトファイル (C: CppUnit examples examples.dsw) を開きます 図 3-1examples プロジェクト メニューの ビルド バッチビルド を選択し すべてのチェックが入っているのを確認してから リビルド を実行します 図 3-2 バッチビルド lib フォルダ (C: CppUnit lib) に各環境用の dll や lib exeファイルが作成されたことを確認します 3

4 Visual C++ 6.0 の設定 VC を起動し メニューの ツール オプション を選択します ディレクトリ タブから表示するディレクトリの インクルードファイル を選択し ディレクトリに C: CppUnit include を追加します 図 4-1 参照するインクルードディレクトリ 同じく 表示するディレクトリの ライブラリファイル を選択し ディレクトリに C: CppUnit lib を追加します 図 4-2 参照するライブラリディレクトリ 4

同じく 表示するディレクトリの ソースファイル を選択し ディレクトリに C: CppUnit src cppunit を追加します OK ボタンを押下します 図 4-3 参照するソースディレクトリ 5

5 実プロジェクトの作成 メニューの 新規作成 を選択します プロジェクト タブから MFCAppWizard(exe) を選択し プロジェクト名に Real 位置に C: Project Real を入力してから OK ボタンを押下します 図 5-1 実プロジェクト作成 必要な情報を Wizard の指示に従って入力し プロジェクトを作成します なお アプリケーションの種類 (SDI/MDI/ ダイアログベース ) や各種設定に CppUnit は全く依存しません 6

メニューの プロジェクト 設定 を選択します 設定の対象で すべての構成 を選択します C/C++ タブから C++ 言語 カテゴリを選択し ランタイムタイプ情報 (RTTI) を有効にする にチェックを入れます 図 5-2 ランタイムタイプ情報を有効にする 7

設定の対象で Win32Debug を選択します C/C++ タブから コード生成 カテゴリを選択し 使用するランタイムライブラリが マルチスレッド (DLL デバッグ ) になっていることを確認します 設定の対象で Win32Release を選択します 図 5-3 マルチスレッドであることを確認 C/C++ タブから コード生成 カテゴリを選択し 使用するランタイムライブラリが マルチスレッド (DLL) になっていることを確認します OK ボタンを押下し ここでビルドします 成功することを確認したら 一度プロジェクトファイルを閉じます 8

6 テストプロジェクトの作成 メニューの 新規作成 を選択します プロジェクト タブから Win32ConsoleApplication を選択し プロジェクト名に Test 位置に C: Project Test を入力してから OK ボタンを押下します 図 6-1 テストプロジェクト作成 アプリケーションの種類で MFC をサポートするアプリケーション を選択し 終了 ボタンを押下します 図 6-2MFC をサポート 9

メニューの プロジェクト 設定 を選択します 設定の対象で すべての構成 を選択します C/C++ タブから C++ 言語 カテゴリを選択し ランタイムタイプ情報 (RTTI) を有効にする にチェックを入れます C/C++ タブから プリプロセッサ カテゴリを選択し インクルードファイルへのパスに.. Real を入力します 図 6-3 インクルードパスの追加 10

ビルド後の処理 タブからビルド後の処理の説明に TestStart!! ビルド後の処理コマンドに $(TargetPath) を入力します 図 6-4 ビルド後にテストを自動的に実行 11

設定の対象で Win32Debug を選択します C/C++ タブから コード生成 カテゴリを選択し 使用するランタイムライブラリが マルチスレッド (DLL デバッグ ) になっていることを確認します リンク タブから 一般 カテゴリを選択し オブジェクト / ライブラリモジュールに cppunitd.lib を追加します ( d 付きはデバッグ環境用 ) 設定の対象で Win32Release を選択します 図 6-5CppUnit のスタティックライブラリを追加 C/C++ タブから コード生成 カテゴリを選択し 使用するランタイムライブラリが マルチスレッド (DLL) になっていることを確認します リンク タブから 一般 カテゴリを選択し オブジェクト / ライブラリモジュールに cppunit.lib を追加します ( d なしはリリース環境用 ) OK ボタンを押下します 12

7 テストクラスの作成 ワークスペースウィンドウの Test クラス を右クリックし サブメニューの クラスの新規作成 を選択します 図 7-1 クラスの新規作成 クラスの種類に Generic クラス クラス名に testdummy 基本クラスの派生元に CppUnit:TestFixture と入力し OK ボタンを押下します 図 7-2testDummy クラスの新規作成 13

テストクラスのヘッダファイル (testdummy.h) を以下のように編集します #include<cppunit/extensions/helpermacros.h> classtestdummy:publiccppunit:testfixture { CPPUNIT_TEST_SUITE(testDummy);// 自クラス名を引数に入力 CPPUNIT_TEST(test); // テスト関数名を引数に入力 ( 複数可 ) CPPUNIT_TEST_SUITE_END(); public: testdummy(); virtual~testdummy(); voidsetup(){ // 実クラスのインスタンス作成 voidteardown(){ // 実クラスのインスタンス削除 voidtest(); // テスト関数 ; テストクラスのソースファイル (testdummy.cpp) を以下のように編集します // テスト関数 voidtestdummy:test() { CPPUNIT_ASSERT(FALSE); // わざと失敗させる メイン (_tmain) 関数のあるソースファイル (Test.cpp) を以下のように編集します #include<cppunit/ui/text/testrunner.h> #include<cppunit/compileroutputter.h> #include"testdummy.h" // テストクラス int_tmain(intargc,tchar*argv[],tchar*envp[]) { intnretcode=0; //MFC の初期化および初期化失敗時のエラーの出力 if(!afxwininit(:getmodulehandle(null),null,:getcommandline(),0)) { //TODO: 必要に応じてエラーコードを変更してください cer<<_t("fataleror:mfcinitializationfailed")<endl; nretcode=1; else { 14

// ユニットテストを実行する CppUnit:TextUi:: TestRunnerrunner; runer.addtest(testdummy:suite()); // テストクラス ( 複数可 ) CppUnit:Outputer*outputer = CppUnit:: CompilerOutputter:: defaultoutputter(&runer.result(),std:: cout); runer.setoutputer(outputer); nretcode=!(runner.run()); returnnretcode; ここでビルドします ビルドをするとユニットテストを自動的に実行します アウトプットウィンドウに以下のように出力されていれば つまりユニットテストが実行され かつテストに失敗することが確認できれば ここまでは成功です コードを生成中... リンク中... TestStart!!.F C: Project Test testdummy.cpp(32):assertion Testname:testDummy:: test assertionfail ed -Expression:FALSE Fail ures!!! Run:1 Failuretotal:1 Fail ures:1 Errors: 0 c: winnt system32 cmd.exe の実行エラー Test.exe - エラー 1 警告 0 15

8 テストプロジェクトに実プロジェクトを追加 メニューの プロジェクト プロジェクトをワークスペースへ挿入 を選択します 実プロジェクト (C: Project Real Real.dsp) を選択し 依存関係 にチェックを入れてから OK ボタンを押下します 図 8-1 テストプロジェクトに実プロジェクトを追加 16

9 テストコードの記述 アクティブプロジェクトを Test に変更します テストクラスのヘッダファイル (testdummy.h) を以下のように編集します #include"dummy.h" classtestdummy:publiccppunit:testfixture { CPPUNIT_TEST_SUITE(testDummy);// 自クラス名を引数に入力 CPPUNIT_TEST(test); // テスト関数名を引数に入力 ( 複数可 ) CPPUNIT_TEST(testisPrimeNumber); CPPUNIT_TEST_SUITE_END(); public: testdummy(); virtual~testdummy(); voidsetup(){ target=newdummy; // 実クラスのインスタンス作成 voidteardown(){ // 実クラスのインスタンス削除 deletetarget; voidtest(); // テスト関数 voidtestisprimenumber(); // 素数判定テスト関数 private: Dummy*target; ; // 実クラスへのポインタ テストクラスのソースファイル (testdummy.cp) を以下のように編集します // テスト関数 voidtestdummy:test() { CPPUNIT_ASSERT(TRUE); // 必ず成功させる // 素数判定テスト関数 voidtestdummy:testisprimenumber() { BOOLbRet; bret=target->isprimenumber (0);//0 は素数ではない CPPUNIT_ASSERT(!bRet); 17

bret=target->isprimenumber (1);//1 は素数ではない CPPUNIT_ASSERT(!bRet); bret=target->isprimenumber (2);//2 は素数 CPPUNIT_ASSERT(bRet); bret=target->isprimenumber (4);//4 は素数ではない CPPUNIT_ASSERT(!bRet); ここでビルドし リンクエラーになることを確認します 18

10 実クラスの作成 ワークスペースウィンドウの Real クラス を右クリックし サブメニューの クラスの新規作成 を選択します クラスの種類に Generic クラス クラス名に Dummy と入力し OK ボタンを押下します 実クラスのヘッダファイル (Dummy.h) を以下のように編集します classdummy { public: Dummy(); virtual~dummy(); BOOLisPrimeNumber(intnNumber); ; 実クラスのソースファイル (Dummy.cpp) を以下のように編集します // 素数判定 BOOLDummy::isPrimeNumber(intnNumber) { if(nnumber<=0) { returnfalse; //0 は素数でない if(nnumber==1) { returnfalse; //1 は素数でない intnloop=nnumber/2; for(inti=2;i<=nloop;i++) { if(nnumber%i==0) { returnfalse; // 割り切れれば素数ではない returntrue; // 割り切れなければ素数 19

ここで最大の注意点ですが Test プロジェクトの方にも実クラスのソースファイル (Dummy.cpp) を追加する必要があります 一番簡単な方法はソースファイルの編集ウィンドウで右クリックをし サブメニューの プロジェクトへファイルの挿入 Test を選択することです それではビルドします 図 10-1 実クラスのソースファイルをテストプロジェクトに追加 アウトプットウィンドウに以下のように出力されていれば すべて成功です コードを生成中... リンク中... TestStart!!. OK (2) Test.exe - エラー 0 警告 0 20

11 TIPS ここでは 実際のプロジェクトで起こったトラブルと その回避方法を紹介します 11.1リソースの競合ユニットテストではテストプロジェクトから実プロジェクト内のクラスを呼び出すことになりますが 例えば実プロジェクトで CString:: LoadString() などのリソースを参照しているコードがあった場合 テストプロジェクト側のリソースを参照しに行ってしまい エラーが発生する可能性があります この問題を回避するために リソースファイルおよびResource.h をプロジェクト間で共有する方法を示します アクティブプロジェクトをテストプロジェクトに変更します ワークスペースウィンドウの FileView から テストプロジェクトのリソースファイル (Test.rc) および Resource.h を削除します ResourceView でリソースが削除されているのを確認します 図 11-1Test リソースが削除されている 21

メニューの プロジェクト プロジェクトへ追加 ファイル を選択し 実プロジェクトのリソースファイル (Real.rc) を追加します Fil eviewで確認します 図 11-2 実プロジェクトのリソースをテストプロジェクトに追加 図 11-3 実プロジェクトのリソースがテストプロジェクトに追加されている ただし こうするとテストプロジェクト用のリソースが扱えなくなります テストプロジェクトを MFCAppWizard など UI 付きで作成する場合は 面倒でも対象リソースを二重化する必要があります 22

11.2MFC のソケットクラスの使用 CAsyncSocket など MFC のソケットクラスを実プロジェクトで使用している場合 ユニットテストでエラーが発生する可能性があります これはソケットの初期化関数をテストプロジェクトで呼び出していない場合に発生します この問題はメイン関数にてユニットテストを実行する前に 以下のようなコードを追加することで解決します #include<afxsock.h> int_tmain(intargc,tchar*argv[],tchar*envp[]) { intnretcode=0; //MFC の初期化および初期化失敗時のエラーの出力 if(!afxwininit(:getmodulehandle(null),null,:getcommandline(),0)) { //TODO: 必要に応じてエラーコードを変更してください cer<<_t("fataleror:mfcinitializationfailed")<<endl; nretcode=1; else { //MFC のソケットを初期化する if(!afxsocketinit() { cer<<_t("fataleror:afxsocketinit") <<endl; return1; // ユニットテストを実行する CppUnit:TextUi:: TestRunnerrunner; runer.addtest(testdummy:suite()); // テストクラス ( 複数可 ) CppUnit:Outputer*outputer = CppUnit:: CompilerOutputter:: defaultoutputter(&runer.result(),std:: cout); runer.setoutputer(outputer); nretcode=!(runner.run()); returnnretcode; 23