|開発環境|Microsoft Visual C++ 2010 Express (SP1)| |実行環境|Microsoft Windows XP Home Edition (SP3)| |プロジェクトの種類|Win32 プロジェクト| |プロジェクト名|hello| |アプリケーションの種類|Windows アプリケーション| |追加のオプション|空のプロジェクト| 参考 [[Win32 MASM プログラミング入門>http://www7.plala.or.jp/keny01/asm/win32/index.html]] *プロジェクトの新規作成 -メニューから「ファイル」→「新規作成」→「プロジェクト」を選択する -「Win32 プロジェクト」または「Win32 コンソール アプリケーション」を選択する -名前を入力する「hello」 -「ソリューションのディレクトリを作成」のチェックを外す -「空のプロジェクト」をチェックする *ビルドのカスタマイズ -「ソリューション エクスプローラー」の「hello」を右クリックし、ポップアップメニューから「ビルドのカスタマイズ」を選択する -「masm(.targets, .props)」をチェックする *ソースファイルの追加 -「ソリューション エクスプローラー」の「ソース ファイル」を右クリックし、ポップアップメニューから「追加」→「新しい項目」を選択する -「C++ ファイル (.cpp)」を選択する -名前を入力する「hello.asm」 ビルドのカスタマイズの前にソースファイルを追加した場合 -「ソリューション エクスプローラー」の「hello.asm」を右クリックし、ポップアップメニューから「プロパティ」を選択する -項目の種類に「Microsoft Macro Assembler」を選択する *ソースの入力 hello.asm #highlight(asm){{ ; hello.asm .586 .model flat, stdcall NULL EQU 0 MB_OK EQU 0 MessageBoxA proto :dword, :dword, :dword, :dword ExitProcess proto :dword .data CAPTION DB 'ハロー', 0 TEXT DB 'hello, world', 0 .code WinMainCRTStartup proc invoke MessageBoxA, NULL, offset TEXT, offset CAPTION, MB_OK invoke ExitProcess, 0 ret WinMainCRTStartup endp end }} *ビルド -ソリューション構成に「Release」を選択する -メニューから「デバッグ」→「ソリューションのビルド」を選択する(F7キーでも可) 1> LINK : /LTCG が指定されましたが、コードの生成は必要ありません。 [[リンク]] コマンド ラインから /LTCG を削除し、リンカーの性能を改善してください。 **リンカーの設定 -「ソリューション エクスプローラー」の「hello」を右クリックし、ポップアップメニューから「プロパティ」を選択する -「構成プロパティ」→「リンカー」→「最適化」を選択する -構成に「Release」を選択する -「リンク時のコード生成」を空にする 「構成プロパティ/全般/プログラム全体の最適化:プログラム全体の最適化なし」でも可 -「構成プロパティ」→「リンカー」→「デバッグ」を選択する -構成に「Release」を選択する -デバッグ情報の生成「いいえ」を選択する -「構成プロパティ」→「リンカー」→「マニフェスト ファイル」を選択する -構成に「Release」を選択する -マニフェストの生成に「いいえ (/MANIFEST:NO)」を選択する