�@

���W

Visual C++ 2005

���܂܂�C++���M���I�uC++/CLI�v�Ƃ��đ�i������Visual C++ 2005

������Ѓs�[�f�[�@�얓 ��
2005/08/31
Page1 Page2 Page3

�d�v�x�����܂�C++

�@���܈ꕔ�Ńv���O���~���O����uC++�v�̏d�v�x�����܂��Ă���B�����Ŋ��Ⴂ�������ƍ���̂ŔO�̂��߂ɋ������Ă������A����́uC++�̏d�v�x�͍��܂邾�낤�v�Ƃ��������\���������Ă���킯�ł͂Ȃ��B���łɈꕔ�ł͏d�v�x�͍��܂��Ă���A�Ƃ������݂̏󋵂ɂ‚��ď����Ă���̂ł���B

�@���炭�A���̂悤�ɏ����΁A����ȃo�J�ȂƎv���l�������Ǝv���B�Ȃ��Ȃ�AC++�Ƃ����΂��łɉߋ��̌���ł���A������Java�̒a���ƂƂ��ɁA���Y���̈������s��̃��b�e���𒣂��đ��苎��ꂽ�Ƃ����Ă��ߌ��ł͂Ȃ����炾�B������2005�N�̂��܁A���ł�Java������ق���т�������Â�����ƂȂ��Ă���BWindows�‹��ł���΁A���炩��Java�������Y���ɗD���C#������΁A�傫���i������Visual Basic������B���̂悤�ȏ󋵂ŁAJava��U��Ԃ�Ȃ�Ƃ������A�����������ɌÂ�C++��U��Ԃ邱�Ƃɂǂ̂悤�ȈӖ�������Ƃ����̂��낤���H

�@���̓����́A�ɂ߂ĒP�������Ĉꌾ�ŗv�񂵂Ă��܂��΁u�ߋ��̎��Y�̌p���v�Ƃ������Ƃ��ł���B�ߋ��̎��Y�Ƃ́A�\�[�X�E�R�[�h�A���C�u�����A�v���O���}�����’m���A�o���Ȃǂ������B���̂悤�Ȏ��Y�͔��ɑ傫�ȉ��l�����‚��߁A�����Ă��͖������邱�Ƃ��ł��Ȃ��B�����āA�Z�p�̐�����ɂ����āA���Y���p���ł��邱�Ƃ͑傫�ȋ��݂ɂȂ�B

�@�Ⴆ�΁A�p�\�R���̐��E�ł��A1980�N��ɂ͑��݂Ɍ݊����̂Ȃ��A�[�L�e�N�`�������������ɂ�������炸�A�ŏI�I��IBM-PC�݊��@�Ɏ������A���̌�̐V����̃p�\�R������{�I�ɂ���ɑ΂���݊����𖳎��ł��Ȃ��̂́A��͂莑�Y�̌p�����傫�ȉ��l�����‚��߂��Ƃ����邾�낤�B

�@�v���O��������ł����΁A�Ȃ�������Visual Basic�v���O���}���AC#�ֈڍs���邱�ƂȂ�Visual Basic�v���O���}�ł��葱���悤�Ƃ���̂��B����͒P�ɑ̎����ێ�I�ƒf����ׂ��ł͂Ȃ��A�u�ߋ��̎��Y�̌p���v�Ƃ������l�𐳂�����葱���Ă��邩��A�ƌ��邱�Ƃ��”\���낤�B�������Y�������Ȃ���҂�A�V����Ƃł���΁A���̂悤�ȉ��l�ɂ͂�������Ӗ������������Ȃ���������Ȃ��B�������A����Ȃ�̒~�ς�������񂾋Z�p�҂��ƂɂƂ��āA����͖����ł��Ȃ����l�Ƃ�����B

���J������̌n��

�@���āA�u�ߋ��̎��Y�̌p���v�ɂ‚��čl���Ă݂邽�߂ɁA�����Ńp�\�R���̎�͊J������̕ϑJ��U��Ԃ��Ă݂悤�B���ɑ傴���ςɗv�񂵂Ă��܂��ƁA����ɂ͎��2�‚̗��ꂪ����Ƃ�����B1�‚́A����y���d����BASIC�n�̗���ł���A����1�‚͖{�i�h�̃A�Z���u���n�̗���ł���B

�@BASIC�n�̗����Visual Basic���o�Ă��̂܂�.NET Framework���Visual Basic�n����ւƂ‚Ȃ���B�A�Z���u���n�̗���́A��萶�Y�������߂邽�߂ɁA�����ȃA�Z���u���ƌĂ΂��C���o�āA�����C�̓������p������C++�ւƐi�ށB1990�N���Windows�v���O���~���O�̏󋵂�U��Ԃ�ƁA��͂肨��y�nVisual Basic�ƁA�{�i�h�nC++���A2��v���O��������Ƃ��ČN�Ղ��Ă����Ƃ�����ۂ��c��B

�@����y�nVisual Basic�́A���]�i����j�Ȑ܂͂���ǁA�����ɐi���𑱂��Ă������B����́A���ɖ��͂Ȃ����낤�B�������A�{�i�h�nC++�͑傫�ȕǂɓ˂��������Ă��܂��B����́AC++�ɂ͂����‚��̖�肪���������߂��B���͂ȕW�����C�u�����̌��@�A�}�C�N���\�t�g���񋟂���N���X�E���C�u�����̍����iMFC��ATL�̕����Ȃǁj�A�I�u�W�F�N�g�w���v���O���~���O�Ƃ����p���_�C���̍����A���������[�N���������₷������A�[�L�e�N�`���A�Ȃǂł���B

�@���̕ǂ�˂������悤�Ƀ^�C�����[�ɏo�������̂�Java�ł���BJava�͊m����C++�̕����Ă����ǂ�˂������Ă��ꂽ�B����̂ɁA���ꂪ�u�[���ɂȂ������Ƃ����R�̂��Ƃ��Ƃ����邾�낤�B�������AJava�̋P���������ʂɂ́A1�‚����d��ȖY�ꕨ���������B�‚܂肻�ꂪ�u�ߋ��̎��Y�̌p���v�ł���B

�@C����C++�Ɉڍs�����Ƃ��AC����̎��Y�����p���邱�Ƃ͂ł����B�Ⴆ�΁AC�ŏ����ꂽ���C�u���������̂܂܎g�����Ƃ��ł����B�������AC++����Java�Ɉڍs����ۂɁAC++�ŏ����ꂽ���C�u�����͂��̂܂܎g�����Ƃ��ł��Ȃ��B���̓_�ŁAC#��Java�Ɠ��l�ł���i�������AC#��Delphi�̐i���`�ƈʒu�t������Ƃ��������ς�̕]���ł������ɂ�������炸�ADelphi�̎��Y���܂������p���ł��Ȃ��j�B

��C++�̐i��

�@���āA�����Ő̘b�����ɒu���āA���܌��݂̂��Ƃ��l���Ă݂悤�B1990�N��̎�͊J�������1�‚ł�����C++�ɂ���ď����ꂽ�\�[�X�E�R�[�h�⃉�C�u�����͌����ď��Ȃ��Ȃ����낤�B�����āA���������p����v���O�����J���̃j�[�Y�����Ȃ��Ȃ��͂����B

�@�ł́A���̂悤�ȊJ����ڂ̑O�ɂ����Ƃ��A�ǂ̂悤�ɑΏ�����΂悢�̂��낤���BC++�̃R�[�h��Java��C#�ł��ׂď���������ׂ����낤���H �\�Z�⎞�Ԃ�����ɂ���΂�����悢���낤�B�������A�����͏�ɂ���Ƃ͌���Ȃ��B�ނ���A�����Ă��̏ꍇ�́u�Ȃ��v�Ǝv���������悢���낤�B�ł́A�̂Ȃ����C++�J���ɕ����߂�ׂ����낤���B����͂��ꂵ���b�ł͂Ȃ��B����͂��낢��Ȗ����������ł��邱�Ƃ����炩�����炾�B

�@�������AC++�������~�܂��Ă����킯�ł͂Ȃ��BC++���i���𑱂��Ă���B�uC++�}�l�[�W�g���v�iManaged Extensions for C++�j���o�āuC++/CLI�v�ւƑ����V����C++�́A�u�ߋ��̎��Y�̌p���v�ƁA���‚�C++�������Ă������̉����𓯎��ɐ��������Ă���B

�@���́A��肳�������ł���΁AC++�ň������Ƃ͉����Ȃ��̂ł���B�����āAJava��C#�ɂ͂ł��Ȃ��u�ߋ��̎��Y�̌p���v���”\�ł���΁A�܂��ɍŋ��B����ɂ���āA�{�i�hC++�n�̗������������Ǝ󂯎~�߂錈��łƂȂ�v���O���~���O����ɁAC++���g���ĕ��サ�Ă����̂ł͂Ȃ����Ɗ�����킯�ł���B

�@���̂悤�Ɋ�����̂́A���ōl�����A�C�f�A�ɑ΂��Ăł͂Ȃ��B���ۂɎ����Ŏ�𓮂�����Ƃ�ʂ��Ċ�����̂ł���B�M�҂����݊J�����Ă���\�t�g�E�F�A�́A1990�N��O����C++�ŋL�q���ꂽ�v���O���������ݓI�ɃA�����W���ĕ�����������̂Ȃ̂����A�܂���C++���������̂��߂̍őP�̑I���ƂȂ��Ă���B�����AC++���g��Ȃ��Ƃ���΁A�\�Z�Ǝ��Ԃ̓s���Ń{�c�ɂȂ��Ă����͂��̊��ł���B

�@���āA���̋L���ł́A�܂�Visual Studio .NET 2003��C++�}�l�[�W�g�����Љ�A����ɑ���Ȃ����������邱�Ƃ������A���ꂪC++/CLI�Ƃ����V��������ƁA������������������J���‹��ł���Visual C++ 2005�iVisual Studio 2005�̈ꕔ�ƂȂ�j�ɂ���Ė�������Ă���Ƃ������ɘb��i�߂Ă������Ƃɂ��悤�B�B�{�e�̎�|��C++�}�l�[�W�g���̐i���`�uC++/CLI�v�̉�������A���̔�r�ΏہA�O��m���Ƃ��āA�܂���C++�}�l�[�W�g�����Љ��B

�@�Ȃ��A���̋L���́AC++�}�l�[�W�g����C++/CLI��m��Ȃ����X�ɁA���̂������Љ����e�ł���A���������łɂ������̕��X�ɂ͑ދ��ƂȂ�”\�����������Ƃ����f�肵�Ă����B

�{���͂�����C++�}�l�[�W�g��

�@���s�̊J���‹��ł���Visual Studio .NET 2003�Ŏg�p�ł���C++�}�l�[�W�g���́A���ꂾ���Ŏ��͂������͂𔭊����Ă����B�����AC++�}�l�[�W�g���̂��Ƃ��AC++�̕��@�ŏ���C#�Ƃ������x�̔F���̕�������΁A���ЂƂ���������߂Ă������������B

���l�C�e�B�u�E�R�[�h��printf�֐����Ăяo��

�@�܂��A�����ȃv���O�������g���āA�ǂ̂����肪�������̂������Ă������B

�@C++�}�l�[�W�g���́A�قƂ�ǂ̓_�ŁA�]����C++�̏�ʌ݊��ƂȂ��Ă���B�Ⴆ�΁A�ȉ��̂悤�Ȃ悭����C�́gHello World�h�v���O�������L�q���Ă����̂܂܎��s�ł���B

#include "stdafx.h"
#include <stdio.h>

int _tmain()
{
  printf("Hello World!\n");
  return 0;
}
�悭����C�́gHello World�h�v���O����
Visual Studio .NET 2003�ɂāA�mVisual C++�n�́m�R���\�[���A�v���P�[�V�����i.NET�j�n�v���W�F�N�g���쐬���ē��͂���B�Ȃ��\�[�X�E�R�[�h���́u_tmain�v�́Amain�֐���wmain�֐��i�����C�h�����o�[�W������main�֐��j���A�R���p�C���ݒ�i�v���v���Z�b�T�̒�`�j�ɍ��킹�ēK�؂ɑI�����邽�߂̃}�N���ł���B

�@��������s����ƈȉ��̂悤�ɂȂ�B

�@����̂������������������̂�������Ȃ��Ƃ����ǎ҂�����Ǝv���B�܂��A.NET Framework�̒m���̂���ǎ҂̒��ɂ́A�����N���Ă���̂��悭�����ł��Ȃ��Ƃ����������邩������Ȃ��B

�@���͂��̃\�[�X�E�R�[�h�́A�}�l�[�W�E�R�[�h�ŏ����ꂽmain�֐��i�\�[�X�E�R�[�h�ł́u_tmain�v�j����A�l�C�e�B�u�E�R�[�h�i�A���}�l�[�W�E�R�[�h�j�ŏ����ꂽprintf�֐��i������C����W�����C�u������API�j���Ăяo���Ă���̂ł���B�‚܂�A�V�K�ɏ����������͐V�����e�N�m���W�ŁA�Ăяo����͌Â��e�N�m���W�Ŏ�������Ă���Ƃ������Ƃł���B�܂��Ɂu�ߋ��̎��Y�̌p���v����ەt���鎖��Ȃ̂ł���B

���gHello World�h�v���O�����̒��g

�@��̓I�ȓ��e��.NET�p�̋t�A�Z���u���uildasm.exe�v���g�����ƂŊm�F���邱�Ƃ��ł���i�ȉ��̐������������Ǝv�����ꍇ�͂��̕�����ǂݔ�΂��Ă�����Ă��\��Ȃ��j�B

�@�܂��Amain�֐��͈ȉ��̂悤�ɋt�A�Z���u������A�m����MSIL�ŋL�q����Ă��邱�Ƃ�������B�‚܂�A�}�l�[�W�E�R�[�h�ł���B

.method public static int32 modopt([mscorlib]System.Runtime.CompilerServices.CallConvCdecl)
    main() cil managed
{
  .vtentry 1 : 1
  // �R�[�h �T�C�Y     15 (0xf)
  .maxstack  1
  IL_0000:  ldsflda  valuetype $ArrayType$0x5c1e545c modopt([Microsoft.VisualC]Microsoft.VisualC.IsConstModifier) '?A0x83128050.unnamed-global-0'
  IL_0005:  call     vararg int32 modopt([mscorlib]System.Runtime.CompilerServices.CallConvCdecl) printf(int8 modopt([Microsoft.VisualC]Microsoft.VisualC.NoSignSpecifiedModifier) modopt([Microsoft.VisualC]Microsoft.VisualC.IsConstModifier)*)
  IL_000a:  pop
  IL_000b:  ldc.i4.0
  IL_000c:  br.s     IL_000e
  IL_000e:  ret
} // end of method 'Global Functions'::main
ildasm.exe�ɂ��main�֐��̋t�A�Z���u���o��

�@�ł�printf�֐��͂ǂ��Ȃ��Ă���̂��Ƃ����ƁA�ȉ��̂悤�Ȍ��ʂ�������B�R�����g�Ɏ�����Ă���Ƃ���A����͖��ߍ��܂ꂽ�l�C�e�B�u�ȃR�[�h�ł���B

.method public static pinvokeimpl(/* No map */)
    vararg int32 modopt([mscorlib]System.Runtime.CompilerServices.CallConvCdecl)
    printf(int8 modopt([Microsoft.VisualC]Microsoft.VisualC.NoSignSpecifiedModifier) modopt([Microsoft.VisualC]Microsoft.VisualC.IsConstModifier)* A_0) native unmanaged preservesig
{
  .custom instance void [mscorlib]System.Security.SuppressUnmanagedCodeSecurityAttribute::.ctor() = ( 01 00 00 00 )
  // Embedded native code
  //  �l�C�e�B�u ���\�b�h�̋t�A�Z���u���̓T�|�[�g����Ă��܂���B
  //  Managed TargetRVA = 0x19740
} // end of method 'Global Functions'::printf
ildasm.exe�ɂ��printf�֐��̋t�A�Z���u���o��

�@���̂悤��C++�}�l�[�W�g���ł́A�}�l�[�W�E�R�[�h�ƃl�C�e�B�u�E�R�[�h��1�‚̃A�Z���u���Ɋ܂܂��邱�Ƃ��e�Ղł��邵�AC���ォ��p������Ă������C�u�������}�l�[�W�E�R�[�h����Ăяo�����Ƃ��e�ՂȂ̂ł���B

��C�W�����C�u������Win32 API��.NET Framework�N���X�E���C�u�������Ăяo��

�@���ꂾ���ł͂Ȃ��B����Win32�̃l�C�e�B�uDLL�̌Ăяo���A�Ⴆ��Win32 API�̌Ăяo�����]����C++�Ɠ��l�Ɏ����ł���B�u�]����C++�Ɠ��l�v�Ƃ������Ƃ́A�w�b�_�E�t�@�C���ł���uwindows.h�v���C���N���[�h���A�C���|�[�g�E���C�u�����������N���邾����Win32 API���Ăяo���邱�Ƃ��Ӗ�����B

�@C#��Visual Basic�ł́ADllImport������Declare����K�v�Ƃ������A���̂悤�ȓ���ȍ\����C++�}�l�[�W�g���ł͕K�v�Ƃ���Ȃ��B���������Ȃ��Ƃ��A�����I�ɁuP/Invoke�v�i�}�l�[�W�E�R�[�h����A���}�l�[�W�E�R�[�h���Ăяo�����߂̃C���^�[�t�F�C�X�j���}�������̂ł���B

�@�������A.NET Framework�̃N���X�E���C�u�������Ăяo�����Ƃ��ł���B�ȉ��ɁA1�‚̊֐�������AC�W�����C�u�����AWin32 API�A.NET Framework�N���X�E���C�u�������Ăяo������Љ�悤�B

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>

#using <mscorlib.dll>

using namespace System;

int _tmain()
{
  DWORD dummy;

  // C�W�����C�u����
  printf("Hello World!\n");

  // Win32 API
  WriteFile(GetStdHandle(STD_OUTPUT_HANDLE),
    "Hello World!\n",13,&dummy,NULL);

  // .NET Framework�N���X�E���C�u����
  Console::WriteLine(S"Hello World!");

  return 0;
}
3��ނ̌Ăяo���菇�����݂����ė��p����C++�}�l�[�W�g���̃R�[�h
Visual Studio.NET 2003�ɂāA�mVisual C++�n�́m�R���\�[���A�v���P�[�V�����i.NET�j�n�v���W�F�N�g���쐬���ē��͂���BC++�}�l�[�W�g���ł́A1�‚̊֐�������AC�W�����C�u�����AWin32 API�A.NET Framework�N���X�E���C�u�������Ăяo�����Ƃ��ł���B

�@��������s����ƈȉ��̂悤�ɂȂ�B

�@3��ނ̌Ăяo���̌��ʂ͓����Ɍ����邪�A�Z�p�I�ɂ͂܂������قȂ��Ă���B����3�‚����R�Ƌ������Ă���\�[�X�E�R�[�h�́A����Ӗ��ŋ����̑ΏۂƂ����邾�낤�B����炪�A�����ɈقȂ�e�N�m���W�ɂ���Ď�������Ă��邩�A���̏ڍׂ�m��Βm��قǁA�����͑傫�����̂ɂȂ�̂ł͂Ȃ����낤���B�Z�p�I�Ȗʔ����Ƃ����Ӗ��ł́AC++�}�l�[�W�g����C#��Visual Basic���͂邩�ɂ��̂��ł��邩������Ȃ��B

�@

�@INDEX
�@ �m���W�n Visual C++ 2005
�@ ���܂܂�C++���M���I�uC++/CLI�v�Ƃ��đ�i������Visual C++ 2005
  1. �{���͂�����C++�}�l�[�W�g��
�@   2. C++�}�l�[�W�g���̕�����Ȃ�����
�@   3. Visual C++ 2005��C++/CLI�Ƃ�������
�@


Insider.NET �t�H�[���� �V���L��
  • ��2��@�Ȍ��ȃR�[�f�B���O�̂��߂� �i2017/7/26�j
    �@�����_���ŋL�q�ł��郁���o�̑����Athrow���Aout�ϐ��A�^�v���ȂǁAC# 7�ɂ͈ȑO�����R�[�h���Ȍ��ɋL�q�ł���悤�ȋ@�\����������Ă���
  • ��1��@Visual Studio Code�f�o�b�O�̊�b�m�� �i2017/7/21�j
    �@Node.js�v���O�������f�o�b�O���Ȃ���AVisual Studio Code�ɓ�������Ă���f�o�b�O�@�\�̊�{�́u�L�v���}�X�^�[���悤
  • ��1��@���ĂȃR�[�f�B���O�̂��߂� �i2017/7/19�j
    �@C# 7�Œlj����ꂽ�V�@�\�̒�����A�u���l���e�����\���̉��P�v�Ɓu���[�J���֐��v���Љ��B�����͕�����₷���R�[�h���L�q����̂Ɏg����
  • Presentation Translator �i2017/7/18�j
    �@Presentation Translator��PowerPoint�p�̃A�h�C���B�v���[���e�[�V�������̎����̕t����A������ł̎��^�����A�X���C�h�̖|����s����
��IT���[���}�K�W���@�V������X�^�b�t�̃R���������[���œ͂��܂��i�����j

���ڂ̃e�[�}

Insider.NET �L�������L���O

�{�� ����