VC++ �S�� �̊o������

LastUpdate: 2009/01/19 00:23:06

�߂�

���悭�o���킷�R���p�C��/�����N�G���[
���悭�o���킷���s���G���[ �@

001 char80�o�C�g�z��ւ̃|�C���^�̐錾���@
002 �R�}���h���C���ł̈����̎擾���@
003 (C++) �������z�֐��̎g����
004 (C++) �|�C���^�n���ƎQ�Ɠn��
005 �ϐ���`���̏������o���G�[�V����
006 printf�̂悭����g����
007 cout�̂悭����g����
008 CArray�̂悭����g����
009 try�Acatch�ɂ‚���
010 �p���ɂ��X�R�[�v�̕ω��ɂ‚���
011 �\���̂̌^�錾�ɂ‚���
012 DECLARE_SERIAL IMPLEMENT_SERIAL Serialize ���ĉ��H
013 #ifdef�̏����̏����̏����̊�{
014 �uisual C++ �̃v���W�F�N�g�̐V�K�쐬���j���[�̐���
015 BSTR�^�̊֐��̖߂�l��VC++���Ŏ擾������@
016 �g���[�X�̖ړI�ŏo�͂������e���A�t�@�C���ɏ����o�����@
017 VisualC++�̃v���W�F�N�g�t�@�C���́H
018 Link�ŃG���[
019 fatal error C1010: ��غ��ٍ߲ς�ͯ�ް�̌������ɗ\�����Ȃ� EOF �����o���܂���
020 �Q�d�C���N���[�h�h�~
021 new delete �̎g����
022 StdAfx.h��StdAfx.cpp���ĉ��H
023 [MFC]�A�v���P�[�V�����ň����͎擾�ł���́H
024 [MFC]�A�v���P�[�V�����N���X�̃I�u�W�F�N�g�ɃA�N�Z�X����ɂ́H
025 �N���X��static�ȃ����o�ϐ���lj������烊���N�G���[�ɂȂ邪
026 �\�[�g�̘b��
027 Win32API���g���Ƃ���include
028 �œK���̃L�[���[�h
029 ���X�g�{�b�N�X�̃A�C�e���lj��̕��@�i�l�e�b�̗��K�����˂āj
030 ��ʂ��Ăǂ�����Â���񂾂낤�H
031 �v���Z�X�񋓂̎�@
032 �ÓI�����o�֐��̗��p�@
033 CTime��CTimeSpan�͂ǂ��Ⴄ�́H
034 �֐��̖߂�l���āA�ǂ��������J�j�Y���H
035 �悭�g���^�̕\���͈�
036 ���\�[�X�t�@�C���𑼂̃v���W�F�N�g����R�s�[������@
037 IDD���������ăR���p�C���G���[
038 IDE�ɃN���X�̂ЂȌ`����点����@
039 VB������g����DLL�̍���
040 �X�^�[�g���j���[����MSDN�̃V���[�g�J�b�g���쐬������@
041 �C���X�^���X�𐶐����Ȃ��֐��̏W�܂�̃N���X���쐬����ɂ�
042 �悭�o���킷�A�R���p�C���^�����N�G���[
043 �G�f�B�^�̃t�H���g��ݒ肷����@
044 �J�����g�t�H���_�̎擾
045 �x�[�V�b�N�ȃt�@�C��IO
046 046 DLL���ĂԂ悤�ɂ���Ƃ�
047 �悭�g���}�N��
048 �N���X���C�u����
049 �\������
050 CMap����
051 �N���X �r���[�̃A�C�R���̈Ӗ�
052 �悭�g���V���[�g�J�b�g�ꗗ
053 Memory Details�̌���
054 �R�[�h�⊮���������@�\���Ȃ����̑Ώ����@
055 const
056 �_�C�i�~�b�N�L���X�g
057 ���ʃC���N���[�h�p�X�̐ݒ���@
058 �悭�������萔
059 new foo[0]�Ŏ擾�ł���A�h���X�̓�
060 �悭�Y���񂾂Ȃ��@qsort�̎g����
061 �}�N���̓o�^�̎d��
062 �f�o�b�K�[�Ńu���C�N�|�C���g������ƌł܂�I
063 �����̊���Z�͒��ӁI
064 �G���[�R�[�h�̈Ӗ��𒲂ׂ���
065 ���s�R�[�h���ꂱ��
066 EXE/DLL�̃f�o�b�O���ꂱ��
067 �A�C�R���̂��ꂱ��
068 �A�E�g�v�b�g�G���A�Ƀf�o�b�O�����o�������Ƃ�
069 �����K�w�ɓn��t�H���_���ꔭ�ō쐬�������Ƃ�
070 FileView �ɂ���N���X���AClassView�ɕ\������Ȃ��I
071 ���s���x�̃`���[�j���O
072 �����[�X�p�̃������ƃf�o�b�O�p�̃�����
073 �����o�֐��̊֐��|�C���^
074 ���z�֐��ƃC�����C���֐�
075 �����w��̃u���C�N�|�C���g
20060713 �R�}���h���C���������ĉ��������Ă���H
20080716 �v���W�F�N�g�̏����i�[�t�H���_�̐ݒ���@
20080716 VS2008 �� �s���A�� C���� �R���\�[���A�v�����쐬������
20080717 Windows�g���@�\�𖳌��ɂ�����
20080723 �R���p�C���x�� C4996�̗}��
20080725 �V���v���ɋ��ʊ֐��̎���
20080909 ���݂̏ꏊ�̃\�[�X �R�[�h��\���ł��܂���
20080918 �W���o�͂ƃG���[�o��


001     char80�o�C�g�z��ւ̃|�C���^�̐錾���@

char (*p)[80];

1999/12/27

002     �R�}���h���C���ł̈����̎擾���@

main�֐��ւ̈����œn�����B��P�����́A�R�}���h���C�������̐��B��Q�����́A������z��ւ̃|�C���^�ł���B
�Ȃ��z��P�–ڂ́A�������g�̃t���p�X�t�@�C�����ł���A�K���n�����B����āA��P�����͍Œ�P�ɂȂ�B

��j�F�R�}���h���C�������̗�

#include <iostream.h>

void main(int argc, char *argv[] ){

    cout << "argc=" << argc << endl;

    int i;       

    for (i=0 ; i < argc ; ++i){
        cout << "argv[" << i << "]=" << argv[i] << endl;
    };

    return;

}

1999/12/27


003     �������z�֐��̎g����

�T���v��

#include <iostream.h>

class classMoto{
public:
    virtual int GetName()=0;    //�������z�֐�
};

class classA : public classMoto {
public:
    int GetName(){
        return 123;
    };
};

class classB : public classMoto {
public:
    int GetName(){
        return 456;
    };
};

int main() {

    classA    cAAA;
    classA*   pAAA;

    classB    cBBB;
    classB*  �@
pBBB;

    classMoto*    pVVV;

    pAAA = &cAAA;
    pBBB = &cBBB;
   
    cout << "pAAA->GetName()=" << pAAA->GetName() <<endl;
    cout << "pBBB->GetName()=" << pBBB->GetName() <<endl;

    pVVV = pAAA;
    cout << "pAAA->GetName()=" << pVVV->GetName() <<endl;

    pVVV = pBBB;
    cout << "pBBB->GetName()=" << pVVV->GetName() <<endl;

    return(0);
}

�T���v�����

�N���X�g�`�h�ƃN���X�g�a�h������B�������Q�Ƃł���|�C���^��p�ӂ��A���̃|�C���^�͂ǂ�����Q�Ƃ��Ă���̂��𒲂ׂ����B�����ŁA���ۃN���X�̉��z�֐���݂��邱�ƂŊ֐����g�������邱�Ƃ��”\�ƂȂ�B

���N���X���@virtual int GetName()=0�@�����z�֐���ݒ肵�Ă���Ƃ���B=0 �ɂ��A���̂̂Ȃ��錾�����ɂȂ�K���q�N���X�ōĐ錾���Ȃ��Ă͂Ȃ�Ȃ��Ӗ��ɂȂ�B������������z�֐��Ƃ����B

���s����

pAAA->GetName()=123
pBBB->GetName()=456
pAAA->GetName()=123
pBBB->GetName()=456

1999/12/27


004     �|�C���^�n���ƎQ�Ɠn��

�]��C�́A�|�C���^�n�������ł��������AC++�ł͎Q�Ɠn�����T�|�[�g���ꂽ�B
�Q�Ƃ́A�ϐ��̕ʖ��̂悤�Ȃ��̂ł���A�Q�Ɛ�̎��̂Ɠ������̂̂悤�Ɉ������Ƃ��ł���B

��j

main(){
   
    int  iii;
   
    // �|�C���^�n���̗�
    sub1(&iii);

    // �Q�Ɠn���̗�
    sub2(iii);
}

//�|�C���^�n���̈���
void sub1(int* iii){
}

//�Q�Ɠn���̈���
void sub2(int& iii){
}

1999/12/27


�Q�Ɠn��������ƁA��L�ł����Ƃ���� sub2 ���Ł@����iii�̓��e��ύX���Ă��܂���������Ȃ��B

�����ŁAvoid sub2(const�@int& iii)�@�Ƃ���ƁAsub2 ������iii���ύX�ł��Ȃ�����ۏ؂��邱�ƂɂȂ�B

2002/10/16


005     �ϐ���`���̏������o���G�[�V����

	int iii1	=1;
	int iii2[3]	={1,2,3};
	int iii3[2][3]	={{ 1, 2, 3},{11,12,13}};
	
	struct staaa aaa1	={ 1, 2};
	struct staaa aaa1[2]	={{1, 2},{11,12}};


1999/12/28


006     printf�̂悭����g����

printf("name=%s\n",name); ������name�̊J�n�A�h���X���Anull�܂ł��o�́B
printf("name=%6s\n",name); ������name�̊J�n�A�h���X���Anull�܂ł��o�́B�U���������̂Ƃ��́A�K���U�����o�͂���
printf("name=%.6s\n",name); ������name�̊J�n�A�h���X���Anull�܂ł��o�́B�U�����ȏ�̂Ƃ��́A�U���������o�͂��Ȃ�
printf("name=%6.6s\n",name); ������name�̊J�n�A�h���X���A�K���U�������E�l�o�́B����Ȃ����̓u�����N����
printf("name=%-6.6s\n",name); ������name�̊J�n�A�h���X���A�K���U���������l�o�́B����Ȃ����̓u�����N����
printf("value=%X\n",value); ����value���P�U�i�\���@%x��a�`f�A%X��A�`F�ŕ\��
printf("value=%d\n",value); ����value�𕄍��t���P0�i�\��
printf("value=%5d\n",value); ����value�𕄍��t���P0�i�\��.�B�E�l�����w��
value=67�̂Ƃ��A�g   67�h
printf("value=%05d\n",value); ����value�𕄍��t���P0�i�\��.�B�O���ߌ����w��
value=67�̂Ƃ��A�g00067�h
printf("value=%u\n",value); ����value�𕄍��Ȃ��P0�i�\��
printf("value=%3.2f\n",value); ���������_value�𐸓x�w��ŕ\��

���ꂾ���m���Ă���΁A�قڑ��v�H

2000/01/05
2000/05/25 �lj�
2002/11/15 %05d �̐��������C��
2008/07/25 %5d �lj�
�@


���l�Ȃǂ��ȒP�ɕ�����ɕϊ�������@


    int i = 10;
    CString strIndex;

    strTime.Format("i=%d ",i);

2003/02/05


007     cout�̂悭����g����

cout << dec << value << endl; ���lvalue��10�i�\��
cout << oct << value << endl; ���lvalue��8�i�\��
cout << hex << value << endl; ���lvalue��16�i�\��
cout.width(n); �\��������n���ɂ���
cout.fill('����'); �󂢂Ă��錅��'����'�Ŗ��߂�
cout.setf(ios::right, ios::adjustfield); �E�l
cout.setf(ios::left, ios::adjustfield); ���l
cout.setf(ios::showpos); �\�����鐔�l�������̎��g�{�h��擪�ɕ\������
cout.setf(ios::showpoint); �����_�\��
cout.setf(ios::scientific, ios::floatfield); �w���\�L
cout.setf(ios::fixed, ios::floatfield); �Œ菬���\�L
cout.setf(ios::internal, ios::adjustfield); cout.fill�Ŏw�肳�ꂽ����������Ώo��

���ꂾ���m���Ă���΁A�قڑ��v�H

2000/01/14


008     CArray�̂悭����g����

CArray<�^1,�^2> ���O;

CArray�̓N���X�e���v���[�g�ł��B
�^1,�^2���e���v���[�g�����ł��B

�^1�ɂ��z��Ɋi�[�����v�f�̌^�����܂�܂��B
�^2�ɂ��CArray�̃����o�ɃA�N�Z�X���鎞�̌^�����܂�܂��B(�����o�֐��̈����Ƃ�)

��j

�֐�a(){
   CArray<CString,CString> aryStr; // CArray��
CString�̔z����`

      CString a;        
    a="test1";       

    aryStr.Add(a); // aryStr�֔z��v�f��lj�
(1���)
                    //CArray<CString,CString> aryStr;�ƒ�`����Ă���̂ň�����
CString�^�ɂȂ�B�@
   
    a="test2";

    aryStr.Add(a); // aryStr�֔z��v�f��lj�
(2���)


    cout << "�P�Ԗڂ̔z��v�f�̒l
" << aryStr.GetAt(0) << endl;

    cout << "�Q�Ԗڂ̔z��v�f�̒l
" << aryStr.GetAt(1) << endl;
}

2000/01/27


���̂��i�[���鎞�͎��̂悤�ɂ���B

CAarrya<MyClass , MyClass&> arrMyClass;

��������ƁA�e���v���[�g�����ł�MyClass�@���@MyClass�@�Ȃ�B�‚܂�E�ӂ͎Q�ƂȂ̂ŃA�h���X�l���킽����邾���ōςށB

����CAarrya<MyClass , MyClass> arrMyClass;�@�Ƃ��Ă��܂���
�e���v���[�g�����̒i�K�ŃR�s�[������̂ŁA����/�j��������Ă��܂��̂ł�낵���Ȃ��B

2003/02/22


009     try�Acatch�ɂ‚���

�b�{�{�ŗ�O���������o����ɂ�try�Acatch���g�p���܂��B

�G���[�����o����Ώ��͈͂�try{}�ň͂��܂��B

try
{
    �����E�E�E�E�E�E;
    �E�E�E�E�E�E�E;
        �E
        �E
        �E
}

catch�Ō��o�����G���[�̗�O�������s���܂��B

catch(...)
{
    ��O�����E�E�E;
    �E�E�E�E�E�E�E;
        �E
        �E
        �E
}

catch�̌���()�̒��ɂ͑Ώ�����G���[�̎�ނ������܂��B(�G���[�̎�ނ͎����Œ��ׂĂ�������)
()�̒���...�������ƑS�Ă̗�O�ɑΉ����܂��B(�ǂ̗l�ȃG���[��������Ȃ���)

��)
void aaa(){
    int a=0,b=0,c;
    c=a/b; //0���ŃG���[����
}

void main( )
{


    try // �G���[���o�́A�͈͂̎w��
    {
        cout << "��������G���[�̌��o��Ԃł�
" << endl;
        aaa();
    } // �G���[���o�͈͏I��


    catch(...)// ��O�����̓��e
    {
        cout << "�G���[���������܂���
" << endl;
    } //��O�����I��


}

2000/01/31


throw ����͎̂��́H�|�C���^���H

���̂ł��|�C���^�ł��A�Ƃɂ����@throw��ɏ��������̂̃R�s�[���n�����B
���̂������΁A���̃R�s�[�R���X�g���N�^���s���邵�A�|�C���^����������|�C���^�ϐ��̃R�s�[�‚܂�A�h���X�l���n�����B


try{
}
catch(classname* e){
}

throw new classname;

�Ƃ���ƁA�R�s�[�R���X�g���N�^������Ȃ��̂Ō������ǂ����Anew�����I�u�W�F�N�g��delete���K�v�ł���B��L�̗�ł�classname �����[�N���Ă��܂��B�����Ő�������delete����K�v������B


try{
}
catch(classname* e){
    delete e;
}

throw new classname;

2003/03/04


010     �p���ɂ��X�R�[�v�̕ω��ɂ‚���

private,protected,public�����o�̌p���ɂ��X�R�[�v�̕ω�

���N���X�����o�̃X�R�[�v �p�� �h���N���X�ł̊��N���X�����o�̃X�R�[�v �N���X�O������̃A�N�Z�X
public public public �A�N�Z�X�”\
protected public protected �A�N�Z�X�s��
private public �A�N�Z�X�s�� �A�N�Z�X�s��
�@ �@ �@ �@
public protected protected �A�N�Z�X�s��
protected protected protected �A�N�Z�X�s��
private protected �A�N�Z�X�s�� �A�N�Z�X�s��
�@ �@ �@ �@
public private private �A�N�Z�X�s��
protected private private �A�N�Z�X�s��
private private �A�N�Z�X�s�� �A�N�Z�X�s��

2000/02/04


011     �\���̂̐錾�E��`�ɂ‚���

//�\���̂��`����B
struct{
    int a;
    int b;
    char *c;
}st1;      //�\����st1���`����


//�\���̂�錾����B
struct aaa{   //struct�̌����\���̃^�O�������B
    int a;
    int b;
    char *c;
};     //�\���̂�錾��������

struct aaa st2;  //�\���̃^�O�ō\���̂��`�B�b�̎���"struct"��擪�ɂ‚��Ȃ���΂Ȃ�Ȃ��B

aaa st1;    //�\���̃^�O�ō\���̂��`�B�b�{�{�̎���"struct"���‚��Ȃ��Ă��悢�B


�‚��ł�typedef�ɂ‚���
struct��class�Ȃǂ͌^��錾������̂ł��B
typedef�͊����̌^�ɕʖ����‚��܂��B

typedef  �^ �ʖ�;�@�Ə����܂��B

��P�j
typedef  int  Integer;

Integer  aaa;   //int aaa;�Ɠ����Ӗ��ɂȂ�B


��Q�j
typdef struct aaa{  //�\���� "aaa"�^ ��"bbb"�Ƃ����ʖ���t����B
    int a;
    int b;
    char *c;
} bbb;

bbb St; //struct aaa St;�Ɠ����Ӗ��ɂȂ�B


��R�j
int�^��Ԃ��֐��ւ̃|�C���^��typedef����ɂ�
typedef int (*pfunction)(char);
�Ə������肷��B

����ɂ���āA�ȉ��̗p�ɕ֗��ɂȂ�B

ex) �uint�^��Ԃ��֐��ւ̃|�C���^�v��Ԃ��֐���`fff

int aaa(char a){�E�E�E�E�E�E�E�E�E�E�E�E�E�E}

pfunction fff(int a,int b){
return aaa
}

2000/02/07


012    DECLARE_SERIAL   IMPLEMENT_SERIAL  Serialize  ���ĉ��H

�ǂ����A�C���X�^���X�̏����A�t�@�C���ȂǂɊi�[���邽�߂Ɏg�p����Ƃ��Ɏg�����݂����ł��B
Serialize���\�b�h���‚����Ƃł���݂����ł����A���̃��\�b�h���g�����߂ɕK�v�Ȃ��܂��Ȃ���
DECLARE_SERIAL�@�Ɓ@ IMPLEMENT_SERIAL�̂悤�ł��B

�Q�l�@http://www.asahi-net.or.jp/~yf8k-kbys/vcpp13.html

2000/02/21


013    #ifdef�̏����̏����̏����̊�{

Debug�̎���Release�̎��ŏ�����ς������Ƃ�
setteicf.gif (9946 �o�C�g)

���j���[�o�[��[��ۼު��]��[�ݒ�]��I�����_�C�A���O��\�����܂��B
�ݒ�̑Ώۂ��gDebug�h�ɂ��āA�v���v���Z�b�T�̒�`�Łg_SP_NAGOYA�h�Ɠ��͂��Ă݂܂����B

#include <iostream.h>

void main(){
#ifdef _SP_NAGOYA
    cout<< "NAGOYA" << endl;      //Debug�̎���_SP_NAGOYA����`����Ă���̂ł��̏��������s�����B
#else
    cout<< "NAGOYA����Ȃ�" << endl;  //Release�̎���_SP_NAGOYA����`����ĂȂ��̂ł��̏��������s�����B
#endif
}

���̃v���O������Debug�\���̃v���W�F�N�g�Ŏ��s����ƁA�gNAGOYA�h�ƕ\������܂��B
Release�\���̃v���W�F�N�g�Ŏ��s����ƁA�gNAGOYA����Ȃ��h�ƕ\������܂��B

2000/02/21

�@


014    �uisual C++ �̃v���W�F�N�g�̐V�K�쐬���j���[�̐���

c_knowhow_014.GIF (10516 �o�C�g)

ATL COM AppWizard COM���T�|�[�g����A�v���P�[�V�����p
ATL (Active Template Library) �́A�e���v���[�g����{�ɂ��� C++ �̃N���X�̏W���ł��B�i�e���v���[�g�x�[�X�� COM �I�u�W�F�N�g�쐬�p���C�u�����j
Cluster Resource Type Wizard �H
Custom AppWizard AppWizard���J�X�^�}�C�Y���V����AppWizard���쐬����B
DevStudio Add-in Wizard �A�h�C���쐬�p
�A�h�C�����g�p����ƁA�^�X�N�����s����R�}���h��lj����Ă��̃^�X�N���������ł��܂��B
ISAPI Extension Wizard ISAPI �g���@�\DLL �܂��̓t�B���^ DLL ���쐬����B
Makefile MFC �𗘗p���Ȃ��X�^�e�B�b�N ���C�u�������쐬���� .�B
MFC ActiveX Control Wizard ActiveX Control���쐬����Ƃ��p
MFC AppWizard (dll) MFC���g�p�����ADLL���쐬����Ƃ��p�B
�i�܂��̓I�[�g���[�V�����p��VB���̉]���Ă���ActiveX DLL�ɑ����j
MFC AppWizard (exel) MFC(�t�H�[��)���g�p�����AEXE�p
Utility Project �H
Win32 Application MFC�N���X�̌Ăяo���ł͂Ȃ�Win32 API�̌Ăяo�����g�p����Windows�A�v���P�[�V�����p
Win32 Console Application ��ɃR���\�[���A�v���P�[�V�����p
�i�R���p�C���I�v�V�����ɂ��AMFC�̗��p�j
Win32 Dynamic-Link Library DLL�̍쐬�p
Win32 Static Library �X�^�e�B�b�N ���C�u�����̍쐬�p
�X�^�e�B�b�N ���C�u�����́A�I�u�W�F�N�g����т��̊֐��ƃf�[�^���������t�@�C���ŁA���s�”\�t�@�C�����r���h����ۂɃv���O�����Ƀ����N����܂��B
�@ �@

2000/02/22


015    BSTR�^�̊֐��̖߂�l��VC++���Ŏ擾������@

��ʓI��BSTR�^�́AOLE�iActiveX�j�p��Export�֐��ŕ������Ԃ������Ƃ��Ɏg���܂��B���̊֐���VC++���ŕ��ʂ�printf���Ă����������\���ł��܂���BBSTR�^�́A�u�R�Q�r�b�g������|�C���^�v�Ƃ���̂ŁAunicode�n���Ǝv���܂��B�i������̐����j
�Ƃ肠�����ł����A�ȉ��̕��@�ł�fprintf�ł��܂����B

BSTR testsub(LPCTSTR str_in);
void main(){
    BSTR    bstr;
    bstr =    testsub("12345");
    printf(">%S<\n\n",bstr);         // printf�ł����Ȃ��Ȃ�A%S���g���̂��~�\
    wprintf(">%s<\n\n",bstr);    // %s�ł����Ȃ��Ȃ�Awprintf�ł����Ȃ��̂��~�\

// %s���g�p����� bstr�̎Q�Ɛ��Unicode�Ȃ̂�{610061006200�E�E�E�E�E35000000}
//�ƂȂ��Ă��邽�߂Q�o�C�g�ڂ�NULL�ƔF������"a"�̂ݕ\�������
//(Windows�ł�unicode�́u���ʃo�C�g�{��ʃo�C�g�v�Ŋi�[����Ă���B0061��6100�ɂȂ�)
    printf(">%s<\n\n",bstr);

}

BSTR testsub(LPCTSTR str_in){
    CString    str;
    str = "aabbc";
    str += str_in;
    return str.AllocSysString();
};

���������A�S�p������BSTR�̒��ɓ����Ă����Ƃ��́A�������\���ł��܂���ł����B�������̕���������A�����Ă��������B

2000/06/17


016    �g���[�X�̖ړI�ŏo�͂������e���A�t�@�C���ɏ����o�����@

���쌟�؂����Ă��鎞�ɁAprintf ��Acout���g�p����P�[�X���L�邩�Ǝv���܂����A��x��ʂɕ\�����ꂽ�����ŏ����Ă��܂��܂��B����́A�W���o�͐悪��ʂɂȂ��Ă��邩��ł��B
������t�@�C���ɕύX����΂����ɂ́A���̂悤�ɕW���o�͐��ύX����΂n�j�ł��B

��j�J�����g�t�H���_�� log.txt�ɏo�͂���ꍇ

[�v���W�F�N�g�̐ݒ�] �� [�f�o�b�O] �� [�J�e�S���F���]
�v���O�����̈����ɁA�u>log.txt�v

�ł��ATRACE�}�N���Ȃǂ��g�p���������A�����ƃX�}�[�g�Ȃ�ł��傤���ǁB

2000/07/25


017 VisualC++�̃v���W�F�N�g�t�@�C���́H

��‚̃A�v���P�[�V�����P�ʂɃv���W�F�N�g������B -> dsp�@
��ˆȏ�̃v���W�F�N�g���܂Ƃ߂āA���[�N�X�y�[�X�Ƃ����P�ʂ�����B -> dsw

�G�N�X�v���[���[����VC++���N�����鎞�́Adsw�� ���ʂ̓N���b�N���悤�I

2002/08/27
2002/10/22 �V�̐�����̂��w���ɂďC��


018 Link�ŃG���[

nafxcwd.lib(thrdcore.obj) : error LNK2001: �O������� "__endthreadex" �͖������ł�
nafxcwd.lib(thrdcore.obj) : error LNK2001: �O������� "__beginthreadex" �͖������ł�
Debug/start1.exe : fatal error LNK1120: �O���Q�� 2 ���������ł��B

MFC���g�����R�[�f�B���O�ɑ΂��A�v���W�F�N�g�̐ݒ�iALT + F7�j�ŁuMFC���g�p���Ȃ��v�ɂȂ��Ă���Ƃ悭�o�܂��B�m�F�I

2002/09/28


Microsoft Foundation Class���u MFC�̃X�^�e�B�b�N���C�u�������g�p�v���u���LDLL��MFC�g�p�v��I��

���ɁuC/C++�v�^�u��I�����܂��B�u�J�e�S���v���u�R�[�h�����v�ɂ��܂��B

�u��ʁv�ŁuMFC�̃X�^�e�B�b�N���C�u�������g�p�v��I�������ꍇ�́u�g�p���郉���^�C�����C�u�����v���u�}���`�X���b�h�v�ɂ��܂��B

�u���LDLL��MFC���g�p�v��I�������ꍇ�́u�}���`�X���b�h(DLL)�v��I�����܂��B

2002/10/03


019 fatal error C1010: ��غ��ٍ߲ς�ͯ�ް�̌������ɗ\�����Ȃ� EOF �����o���܂���

���ӁF�v���R���p�C���ς݃w�b�_�[���g���Ƃ��͂��ׂĂ�*.c,*.cpp�t�@�C����

#include "StdAfx.h"

�Ƃ����s�������K�v������܂��B����������Ȃ��Ƃ��̃t�@�C���̃R���p�C������
fatal error C1010: ��غ��ٍ߲ς�ͯ�ް�̌������ɗ\�����Ȃ� EOF �����o���܂����B
�Ƃ����G���[���\������܂��B

http://www.sam.hi-ho.ne.jp/mi-k/program/non_mfc1.shtml

2002/10/10


020 �Q�d�C���N���[�h�h�~


#if !defined _changeTime_h_
#define _changeTime_h_

void testfunc();

#endif

2002/10/10


021 new delete �̎g����


    CTest* pTest;
    
    pTest = new CTest[50];
    
    delete [] pTest;

2002/10/15


022 StdAfx.h��StdAfx.cpp���ĉ��H

http://www.geocities.co.jp/Hollywood/2358/mfc_7.html


�v���R���p�C���ς݃w�b�_ ���ĉ��H

�v���R���p�C���ς݃w�b�_�Ƃ́A�V�X�e�����C�u�����̃C���N���[�h�t�@�C���ȂǁA���e���قڕύX����Ȃ��C���N���[�h�����炩���߃R���p�C�����Ă����A����R���p�C�����Ȃ��悤�ɂ��邱�ƂŃr���h��������������̂ł��B
�ʂɃr���h�Ɋ|���鎞�Ԃ������Ė��ł͂Ȃ��i�ŋ߂�PC�Ȃ甜��Ȏ��Ԃ��|����قǂ̃V�X�e���͂������������ł�����ˁj�Ȃ�v���R���p�C���ς݃w�b�_�͎g��Ȃ��Ă����v�c���������B

�v���R���p�C���ς݃w�b�_�����t�@�C����[�v���W�F�N�g]��[�ݒ�]��[C/C++]�^�u��[�J�e�S��]����[�v���R���p�C���ς݃w�b�_�[]��I�����C"�v���R���p�C���ς݃w�b�_�[�t�@�C���i.pch�j�̍쐬"���`�F�b�N����D

�v���R���p�C���ς݃w�b�_���g���t�@�C����[�v���W�F�N�g]��[�ݒ�]��[C/C++]�^�u��"�v���R���p�C���ς݃w�b�_�[�t�@�C���i.pch�j���g�p"���`�F�b�N����D

http://ahirujigen.hp.infoseek.co.jp/code_vc00.htm

2002/10/15


023 [MFC]�A�v���P�[�V�����ň����͎擾�ł���́H


BOOL CMy20021015_MApp::InitInstance()
{
    AfxEnableControlContainer();

    // �W���I�ȏ���������
    // ���������̋@�\���g�p�����A���s�t�@�C���̃T�C�Y��������������
    //  ��Έȉ��̓���̏��������[�`���̒�����s�K�v�Ȃ��̂��폜����
    //  ���������B

#ifdef _AFXDLL
    Enable3dControls();         // ���L DLL ���� MFC ���g���ꍇ�͂������R�[�����Ă��������B
#else
    Enable3dControlsStatic();   // MFC �ƐÓI�Ƀ����N����ꍇ�͂������R�[�����Ă��������B
#endif


    AfxMessageBox(this->m_lpCmdLine);   //�����ł͎���

CMy20021015_MApp�́A�E�B�U�[�h�����������A���C���A�v���P�[�V�����N���X�ɂȂ�܂��B
���̃N���X�� CWinApp ���p�����܂��B

CWinApp�́A�p�u���b�N�ϐ���m_lpCmdLine��ێ����Ă��܂��B

2002/10/15


����ȕ��@������悤�ł��B

void CWinApp::ParseCommandLine(CCommandLineInfo& rCmdInfo)

�������A�����̈������ЂƂ‚ÂŽ擾����ɂ́A���X�������K�v�Ȗ͗l�ł��ˁ`

2004/06/28


024 [MFC]�A�v���P�[�V�����N���X�̃I�u�W�F�N�g�ɃA�N�Z�X����ɂ́H

AfxGetApp()���g���ƃv���O�����̂ǂ�����ł��A�v���P�[�V�����I�u�W�F�N�g�̃|�C���^���擾�ł��܂��B

http://www.ne.jp/asahi/yamashita/programming/tips/mfc_misc_faq.html

2002/10/15


025 �N���X��static�ȃ����o�ϐ���lj������烊���N�G���[�ɂȂ邪

static�ȃ����o�ϐ��� �N���X�錾���ł̐錾�ȊO�� �ǂ����Ŏ��̂���`����Ă���K�v������B


    // xxx.h
    class Test{
        static int SOMEVALUE;�@// <- static�����o�ϐ��̐錾
    };
    ...
    // xxx.cpp
    int Test::SOMEVALUE = 0; // <- ���̂̒�` & �l�̏�����

2002/10/16


026 �\�[�g�̘b��

��{�`�̕��K

�N���X���g���āA�N���X�����ɔ�r�֐����������񂾗�

2002/10/20


027 Win32API���g���Ƃ���include�w�b�_�[


#include "stdafx.h"

#include <windows.h>
#include <stdlib.h>

API�֘A�̃w���v�ɂ́AWinbase.h�@�ȂǂƏ�����Ă��邪�Awindows.h����荞�܂Ȃ��ƃR���p�C���G���[����������ł�Bwindows.h����荞�߂΁A����������API�͂�����Ǝv����B

2002/10/21


028 �œK���̃L�[���[�h

/OPT (�œK��)

/OPT:{REF|NOREF|ICF[,iterations]|NOICF}

���̃I�v�V�����́A�r���h���� LINK ���s���œK���𐧌䂵�܂��B�ʏ�A�œK���ɂ���ăC���[�W�̃T�C�Y���������Ȃ�A�v���O�����̎��s���x�����サ�܂��B�������A���̑���Ƀ����N���Ԃ������Ȃ�܂��B

MSDN ����A/OPT �ɂČ�������B

2002/10/30


029 ���X�g�{�b�N�X�̃A�C�e���lj��̕��@�i�l�e�b�̗��K�����˂āj


void CTestDlg::OnButton1() 
{
    // TODO: ���̈ʒu�ɃR���g���[���ʒm�n���h���p�̃R�[�h��lj����Ă�������
    CListBox* pListBox;

    pListBox = (CListBox*)this->GetDlgItem(IDC_LIST1);

    pListBox->AddString("a");
    pListBox->AddString("b");
    pListBox->AddString("c");
    pListBox->AddString("d");
    pListBox->AddString("e");

}

2002/11/05


030 ��ʂ��Ăǂ�����Â���񂾂낤�H

�������_�C�A���O�A�v���P�[�V���������L


031 �v���Z�X�񋓂̎�@

�T���Ƃ����ς����肻���ł����A�܂��́A����
�}�C�N���\�t�g �T�|�[�g�Z�p��� - JP175030

2002/11/08


032 �ÓI�����o�֐��̗��p�@

/*DateUtility.h*/

class CDateUtility  
{
public:

	virtual ~CDateUtility();

	/*���t����A�j���ɕϊ�����*/
	static int ConvDayOfWeek(int Year, int Month, int Day );

private:
	CDateUtility();	/*�C���X�^���X�����֎~*/

};

/*DateUtility.cpp*/

int CDateUtility::ConvDayOfWeek(int Year, int Month, int Day )
{

	int rtn;
	int originalDay;

	static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
	Year -= Month < 3;
	originalDay =  (Year + Year/4 - Year/100 + Year/400 + t[Month-1] + Day) % 7;

	rtn = (originalDay + 6) % 7;
	
	return rtn;

}


#include "DateUtility.h"

int main(int argc, char* argv[])
{

	int rtn =CDateUtility::ConvDayOfWeek(2002,11,12);

	printf("%d\n",rtn);

	return 0;
}
�Ăё��ŁA�N���X���F�F���\�b�h���@�ł��B�@�N���X���\�b�h�ƂȂ�̂ŁA�C���X�^���X�𐶐����Ȃ��Ă��g�p�ł��܂��B�������AStatic�̂‚��Ă��Ȃ������o�[�ϐ��⃁���o�[�֐����ĂԂƗ�����񂾂낤��

2002/11/12


033 CTime��CTimeSpan�͂ǂ��Ⴄ�́H

CTime�͐�Ύ��ԁACTimeSpan�͑��Ύ��Ԃƃw���v�ɂ͂��邪�A�v�́A
100����53�b�Ƃ��A500���Ƃ������A�l��CTimeSpan�ŕ\�����悤�Ƃ������ƁB


CTime �� CTimeSpan �� 2 �‚̃I�u�W�F�N�g���g���āA���̂悤�Ɍo�ߎ��Ԃ��v�Z���܂��B
CTime startTime = CTime::GetCurrentTime();
// ... perform time-consuming task ...
CTime endTime = CTime::GetCurrentTime();
CTimeSpan elapsedTime = endTime - startTime;

2002/12/14


03�S �֐��̖߂�l���āA�ǂ��������J�j�Y���H

�C���[�W
int function(){
    int ret = 1:
    return ret;
}

���̂Ƃ��Afunction�̖߂�l�ł���ret�́A�Ăь��ɒl�̃R�s�[������Ă���B������A�����ϐ����X�R�[�v���͂���Ĕj�󂳂�Ă��L���Ȃ̂ł���B

2002/12/16


035 �悭�g���^�̕\���͈�

�f�[�^�^ �T�C�Y �ď� �\���͈�
char 1 �����^ -128 �` 127
unsigned char 1 �����������^ 0 �` 255
short int 2 �Z�����^ -32,768 �` 32,767
unsigned short int 2 �������Z�����^ 0 �` 65,536
int 4 �����^ -2,147,483,648 �` 2,147,483,647
unsigned int 4 �����������^ 0 �` 4,294,967,295
long 4 �{�����^ -2,147,483,648 �` 2,147,483,647
unsigned long 4 �������{�����^ 0 �` 4,294,967,295
float�@�� 4 �P���x�����^ 1.175494351e-38F �` 3.402823466e+38F
double�� 8 �{���x�����^ 2.2250738585072014e-308 �` 1.7976931348623158e+308

���ڂ����́AMSDN�Q�Ɓ@�L�[���[�h�Ffloat�^�͈̔�

2002/12/28


VC++�̏ꍇ�ɂ́A�ȉ��̌^�����݂���B�ڍׂ�MSDN [�f�[�^�^�͈̔�]

__int8�A__int16�A__int32�A__int64�@�@__int64�́A�}�N���錾������悤���I

2003/03/08


036 ���\�[�X�t�@�C���𑼂̃v���W�F�N�g����R�s�[������@

  1. �R�s�[��̃v���W�F�N�g���J���B
  2. �R�s�[���̃��\�[�X�t�@�C����IDE��Ƀh���b�O���āA�J���B
    �i�R�s�[��Ƀ��\�[�X�̊K�w��������j
  3. �R�s�[��������ʃ��\�[�X�Ȃǂ��A�R���g���[���L�[�������Ȃ���R�s�[��̃��\�[�X�փh���b�O����B

2003/03/21


037 IDD���������ăR���p�C���G���[

xxxxxxx.h(21) : error C2065: 'IDD_XXXXXXXX_DIALOG' : ��`����Ă��Ȃ����ʎq�ł��B

���̎��ʎq�́AResource.h�ɐ錾����Ă���B�錾���ꂢ�邩�m�F���邱�ƂƁA�w�b�_�[���̂��̂��C���N���[�h����Ă��鎖���m�F���邱�ƁB

2003/01/21


038 IDE�ɃN���X�̂ЂȌ`����点����@

[���j���[�o�[]��[�}��]��[�N���X]

�u�N���X�̎�ށv�R���{�N�b�N�X�Łggeneric�N���X�h�ɂ���ƁA��ԃV���v���ȃN���X���ł����B

2003/01/21


039 VB������g����DLL�̍���

http://www.angel.ne.jp/~mike/vb_dll/index.html�@���Q�l�ɂ��܂��傤�B

�悭�ADeclare�錾�Ł@Alias XXXX@8�@�Ƃ��錾���K�v�ȏꍇ�����邪�A


LIBRARY InputCheck.dll

EXPORTS
	CharCheck @1
	TimeCheck @2
	DateCheck @3

�̂悤�ɂ���΁AAlias�͕s�v�ɂȂ�݂������B

2003/01/25

Microsoft Visual Basic Version 5.0 �Ŏg�p���� DLL �̊J���Ɋւ��钍��
http://www.microsoft.com/japan/msdn/vs_previous/vbasic/docs/dll/#5


040 �X�^�[�g���j���[����MSDN�̃V���[�g�J�b�g���쐬������@

�C���X�g�[���������ɂȂ�炩�̌�����MSDN�̃V���[�g�J�b�g����������Ȃ������������B
�蓮�œo�^����΂���ɂ́A���̗l�ɂ���Ɨǂ��B

�����N��
C:\WINNT\hh.exe C:\Program Files\Microsoft Visual Studio\MSDN\2001OCT\1041\MSDN130.COL

��ƃt�H���_�́@MSDN130.COL�@�����݂���t�H���_

2003/01/27


041 �C���X�^���X�𐶐����Ȃ��֐��̏W�܂�̃N���X���쐬����ɂ�

  1. �w�b�_�[�t�@�C���Ȃǂ̃N���X�錾�ł́A�����o���\�b�h�Ɂ@static ��t���܂��傤�B
  2. CPP�t�@�C���ŁA���\�b�h�̎��Ԃ��`���鎞�́Astatic �͕s�v�ł��B
  3. �Ăяo������
    ClassName::MethodName();
    �Ƃ��܂��B
  4. �C���X�^���X������h�~����ɂ́A�w�b�_�t�@�C���Ńf�B�t�H���g�R���X�g���N�^��private�ɂ��܂��悤�B

2003/01/27


042 �悭�o���킷�A�R���p�C���^�����N�G���[

��������Q��


043 �G�f�B�^�̃t�H���g��ݒ肷����@

[���j���[�o�[]��[�c�[��]��[�I�v�V����]

2003/01/28


044 �J�����g�t�H���_�̎擾

char *_getcwd( char *buffer, int maxlen );


045 �x�[�V�b�N�ȃt�@�C��IO


#include <stdio.h>
#include <string.h>

struct recTest{
    char d01[100];
    char d02[100];
    char d03[100];
    char d04[100];
    char d05[100];
    char d06[100];
    char d07[100];
    char d08[100];
    char d09[100];
    char d10[100];
    char crlf[1];
};


    // �P���ɁA�t�@�C����io���s���Ă݂�
    FILE*   fp1;
    FILE*   fp2;
    recTest rec1;
    recTest rec2;
    int     ix = 0;

    if          ((fp1=fopen("data1.txt","r")) == NULL ) {
        printf("data1.txt �I�[�v�����s\n");
    }else if    ((fp2=fopen("data2.txt","w")) == NULL ) {
        printf("data2.txt �I�[�v�����s\n");
    }else{
        while (fread(&rec1,sizeof(rec1),1,fp1)){
            
            memcpy(&rec2,&rec1,sizeof(rec2));

            fwrite(&rec2,sizeof(rec2),1,fp2);
            ix ++;

        }
    
        fclose(fp1);
        fclose(fp2);
        
        printf("�ǂݍ��݌���=%d",ix);

    }

�t�@�C���̃����O�X����Ꝅ�ɓǂݍ��ޕ��@



// �t�@�C���̃T�C�Y�����߂悤
    CFile file;
    file.Open("data1.txt",CFile::modeRead);
    int leng = file.GetLength();
    file.Close();

    int reccount = leng/(sizeof(recTest)+0);


    // �P���ɁA�t�@�C����io���s���Ă݂�
    FILE*   fp1;
    FILE*   fp2;
    recTest rec1;
    recTest rec2;
    int     ix = 0;

    
    recTest* prec = new recTest[reccount];


    if          ((fp1=fopen("data1.txt","r")) == NULL ) {
        printf("data1.txt �I�[�v�����s\n");
    }else if    ((fp2=fopen("data2.txt","w")) == NULL ) {
        printf("data2.txt �I�[�v�����s\n");
    }else{

        fread(prec,leng,1,fp1);

        fwrite(prec,leng,1,fp2);

        fclose(fp1);
        fclose(fp2);
        
        printf("�ǂݍ��݌���=%d",reccount);

    }

    delete []prec;



046 DLL���ĂԂ悤�ɂ���Ƃ�

  1. �Ăяo�����xxxx.dll xxxx.lib xxxxx.h�@��p�ӂ���B
  2. �t�H���_�ɏ�L�R�‚��i�[����B
  3. xxxxx.h���v���W�F�N�g�Ɏ�荞�ށB�@���@����͕K�{�ł͂Ȃ������ł��B�����p�X�ɂ���������Ă��Ă���邻���ł��B�iMr.O�j
  4. �v���W�F�N�g�Ƀ��C�u�����̎w����s���B
    �u�v���W�F�N�g�̐ݒ�v���u�����N�v

2003/02/06

DLL��ÓI�����N����ۂɗ��p���ƂȂ���̂́A
�w�b�_�t�@�C�������ꂪ�����ƁA�R���p�C�����ʂ�Ȃ��B
LIB�t�@�C�������̂Ȃ��ɁA���ꂼ���EXPORT�����֐��̃G���g���[�|�C���g�������Ă���B�����N����ۂɕK�v�B

���s���ɕK�v�Ȃ��̂́A�����p�X��DLL�t�@�C�������邾���ł悢�B

DLL�t�@�C�����C�������ꍇ�A�C���^�[�t�F�C�X��ς��Ȃ���΁ALIB�͍Ĕz�z����K�v�͂Ȃ��B�‚܂�A�Ăь��̃��R���p�C�����r���h�͕K�v�Ȃ��B

2003/09/05


047 �悭�g���}�N��

_DEBUG �f�o�b�O���[�h�ŃR���p�C�������Ƃ�
#ifdef _DEBUG
  AfxMessageBox("�f�o�b�O���[�h!!"); 
#endif
__FILE__�@ ���݂̃\�[�X �t�@�C�����B__FILE__ �͓W�J����A��d���p���ň͂܂ꂽ������ɂȂ�܂��B
__LINE__�@ ���݂̃\�[�X �t�@�C���̍s�ԍ��B�s�ԍ��� 10 �i�̐����萔�ɂȂ�܂��B���̒l�� #line �f�B���N�e�B�u�ŕύX�ł��܂��B
�@

048 �N���X���C�u����

�N���X���C�u�����̍����͗\�z�ȏ�ɊȒP�BVB��AC����ĂԕK�v���Ȃ��AVC++���炾���Ă΂�Ηǂ��̂ł���Ȃ�΁A�N���X���C�u���������������ȒP�ł���B

�T���́AMFC�@DLL�x�[�X�Ńo�C�i�����쐬����B���̍ہA�O���Ɍ��J���邽�߂̏C���qExport���‚����OK�B���Ƃ́A���̃N���X�ɑ΂��ACString�̂��Ƃ��N���X�Ƃ��ĒP�ɗ��p���邾���ł���B

�����̏ڍ�

2003/02/14


049 �\������

�\������


while( �P�̊�  ){
	
	continue; 

}


050 CMap����

http://www.microsoft.com/japan/developer/library/vccore/_core_collections.3a_.template.2d.based_classes.htm

CMap����̑S����肾����@MSDN�@�u�@�R���N�V���� : �R���N�V�����̑S�����o�̃A�N�Z�X�@�v


CMap<CString, LPCTSTR, CPerson*, CPerson*> myMap;

POSITION pos = myMap.GetStartPosition();
while( pos != NULL )
{
    CPerson* pPerson;
    CString string;
    // Get key ( string ) and value ( pPerson )
    myMap.GetNextAssoc( pos, string, pPerson );
    // Use string and pPerson
}

2003/02/22�@

��������L�[�ɂ��āAint �^���Ǘ��������ꍇ�̐ݒ�


CMap<CString,LPCTSTR,int,int> myMap;

2004/04/27


051 �N���X �r���[�̃A�C�R���̈Ӗ�

MSDN [ClassView �̎g�����v�Ō���

2003/03/01


052 �悭�g���V���[�g�J�b�g�ꗗ

�r���h�n

Ctrl + F5 ���s �f�o�b�O�n�̂e�T�ƁA�ǂ��Ⴄ���H
Ctrl + F7 ���݂̃t�@�C���������R���p�C�� �@
�@ �@ �@

�G�f�B�^�n

Ctrl + Shift + 8 TAB�A���s�L�� �� �\��/��\����؂�ւ��� ���j���[�o�[�F�ҏW�����x�ȑ��� ������”\
�@ �@ �@

�f�o�b�N�n

F9 �X�g�b�v�}�[�N��ݒ�/���� ���\�b�h������Ŏ~�߂������́@�o�@�̂���s�Ŏw�肷�邱��
Ctrl + Shift + F9 �S�ẴX�g�b�v�}�[�N������ ���\�b�h������Ŏ~�߂������́@�o�@�̂���s�Ŏw�肷�邱��
F�T ���s
�R���p�C�����Ă��Ȃ��t�@�C���͎����r���h
�@
F10 ���֐���Ȃ��ŁA���̂܂܃X�e�b�v���s �@
F11 ���֐���Ȃ���A�X�e�b�v���s �@
Shift + F11 ��֏オ��Ȃ���A�X�e�b�v���s �@
Ctrl + F10 �J�[�\���s�܂Ŏ��s �@
�@ �@ �@

F5 �� Ctrl + F5 �͂ǂ��Ⴄ���H

�R���\�[���A�v���P�[�V�����ł́ACtrl + F5�ɂĎ��s����ƁA�R���\�[�����‚���O��HitAnyKey���\������Ĉꎞ��~���邪�AF5�ł͎��s��u���ɃR���\�[�����‚��Ă��܂��B

2004/03/11


053 Memory Details�̌���

http://www.microsoft.com/japan/developer/library/vcug/_asug_memory_details_dialog_box.htm

2003/03/02


054 �R�[�h�⊮���������@�\���Ȃ����̑Ώ����@

�g���q ncb �̃t�@�C�����폜���āA�Đ���������B�����Ă��񕜂���

2003/03/04


055 const

const �^ �ϐ���

const�t���̃|�C���^�ϐ��́A�����܂ŁA�w��������̃I�u�W�F�N�g�̓��e���Œ�ɂȂ�Ƃ������ƁB�A�h���X�l�͕ύX�ł���B
���������A�����̒l�́A�K���R�s�[����Ă���킯������A�iconst int i�j�Ȃ�Ă���Ă��Ӗ��������̂�


void test4_2(const int*  i){

    const int* pi = i;

    pi = i;	//������Ă��ǂ�

    pi = NULL;�@//�l��ύX�ł���

    pi = i;

    *pi = 2;	//�R���p�C���G���[�@�w�������G���A�̒l�͕ς����Ȃ��B

}

�^ const �ϐ���

����́@const char* name ���Aname���������̂̒l�������������Ȃ��̂ɑ΂���
�@�@�@�@�@char* const name �́Aname�̎������̂̓��e�͒��ւ����邪�A���̎��̂͂����Ȃ��Ƃ������ƁB

����Aconst char* const name ���Ă���񂩁H���x���ׂĂ݂悤


���t�@�����X�������l����


void test5_1(const int&  i){

    int i1 = i; 

    i1 = 3; //OK�@i�̎������g�𕡎ʂ����ʂ��̂�����OK

    i = 3;  //�R���p�C���G���[�@i�̓R���X�g�I�u�W�F�N�g

}

2003/03/10


056 �_�C�i�~�b�N�L���X�g

�����N������Ĉ�x�׋����܂��傤

http://tt.sakura.ne.jp/~suzu/tips/cast.html

�Ȃ��AVC++�Ń_�C�i�~�b�N�L���X�g���g�p����Ƃ��́A���L�̐ݒ�����Ă����K�v������B
�������Ȃ���

dynamic_cast' �� /GR- ���g�p�������Ӱ̨���^ 'class ClassName' �Ŏg�p����Ă��܂�; ���쌋�ʂ͕ۏ؂���܂���B

���\������Ă��܂��B

2003/04/19


057 ���ʃC���N���[�h�p�X�̐ݒ���@

..\..\..\include,..\..\..\..\common\include �̂悤�ɁA�J���}��؂ŕ����ݒ�ł���

���C�u�����̃p�X�̒lj�

2003/03/25

VS2008 �ł́A�w����@���ς���Ă��遨20080725_vs2008_simple_common_function_implement/vs2008_simple_common_function_implement.html


058 �悭�������萔

#define MAX_PATH 260

windef.h


059 new foo[0]�Ŏ擾�ł���A�h���X�̓�

new foo[n] �Ŕz����쐬�����ꍇ�ɁA�m�ۂ���郁�����̈�́usizeof(foo) * n + �f���~�^�̃T�C�Y�v���ł���B

�����
foo *pfoo = new foo[0];
�Ŏ擾�ł���pfoo�̃A�h���X��new�ŃA���P�[�g���ꂽ�z��̃f���~�^�̃A�h���X�ł���B
    �i�ufoo * 0 + �f���~�^�v���A���P�[�g�����)


060 �悭�Y���񂾂Ȃ��@qsort�̎g����


qsort(array.GetData(),               //  �\�[�g����z��̐擪
      array.GetSize(),               //  �z��̗v�f��
      sizeof(ClassName*) ,     //  �z��v�f�̃T�C�Y ���̗�́A�|�C���^�l�����[�Ƃ���
      class::compareFunction   //  ��r�֐�
       );

int class::compareFunction(const void *pkey1, const void *pkey2){
    
    ClassName** p1 = (ClassName**)pkey1;
    ClassName** p2 = (ClassName**)pkey2;
    
    //p1 <  p2 �͕���Ԃ�����
�@�@//p1 == p2 �͂O��Ԃ�����
    //p1 >  p2 �͐���Ԃ����Ɓ@�@�~���ɂ���ꍇ�́A�t�ł�

�@�@return (*p1)->value - (*p2)->value;

}

2003/05/06


061 �}�N���̓o�^�̎d��

�l�b�g�ŕ֗��ȃ}�N�����o�^����Ă���B������AIDE�ォ��ȒP�Ɏ��s�ł���悤�ɂ��鎞�̕��@�ɂ‚��āB

�ڍׂ͂�����

2003/06/06


062 �f�o�b�K�[�Ńu���C�N�|�C���g������ƌł܂�I

�����̃R�[�f�B�O�o�O������̂�������܂��񂪁A����y�[�W�ŎQ�l�ɂȂ鎖�������Ă���܂����B

�@�ŏ��̓C���X�g�[�����Ă���Windows�̂ǂ����������Ă��܂��Ă���̂��Ƃ��v���A���x��Windows XP �̃N���[���C���X�g�[���� Visual Studio �̃C���X�g�[������蒼������A���邢�͐F�X�ȃf�o�C�X�𖳌������Ă݂�������܂������A�܂��������܂�܂���ł����B�@�����čŌ�ɋ^�����̂�IME�֌W�B �@XP�ł͐V���� �u����o�[�v ����������Ă���A�ǂ������̌���o�[��Visual Studio �̃f�o�b�K�̑������ǂ��Ȃ��悤�ȋC�����Ă��܂����B
�@����o�[�̏�Ԃ́A�R���g���[���p�l���́u�n��ƌ���̃I�v�V�����v�����\���ɂ��鎖���ł��܂����A����o�[�̃v���O�������̂ł��� CTFMON.EXE �́A�ˑR���O�C�����ɕK���v���Z�X�Ƃ��Ď����I�Ƀ��[�h����Ă��܂��܂��B
�@���̎������[�h���w�肵�Ă��郌�W�X�g�� ( HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run ) �� CTFMON.EXE�̃��[�h���w�肵�Ă��镔������ō폜���Ă��A����Windows�N�����ɂ͎����I�ɐݒ肪�������Ă��܂��Ƃ���ȂǁA�@�u���̃v���O�����A�܂��܂��������I�v�@�Ǝv���܂����B
http://www.wg7.com/w2ktips/#CTFMON

������Q�l�Ƀ��W�X�g����������Ă݂܂�����A�����ł܂�Ȃ��Ȃ�܂����˂��`

2003/06/17


063 �����̊���Z�͒��ӁI

�����ǂ����̊���Z�́A�����̌^�Ɋ֌W�Ȃ��A�����ɂȂ��Ă��܂��܂��B


float f;
int a = 5;
int b = 7;

f = a / b;

���́A�[���ɂȂ��Ă��܂��܂��B�����C�̋K���̂悤�ł��B

���҂���l�����߂�ׂɂ́A�ǂ��炩��float�^�ɃL���X�g����Ηǂ��悤�ł��B


float f;
int a = 5;
int b = 7;

f = (float)a / b;

2003/06/18�@


064 �G���[�R�[�h�̈Ӗ��𒲂ׂ���

GetLastError�֐��̖߂�l�̐��l����A�G���[�̈Ӗ��𒲂ׂ������ɁA�֗���TOOL������B

[�X�^�[�g]��[�v���O����]��[Microsoft Visual Studio 6.0]��[Microsoft Visual Studio 6.0 �c�[��]��[Error Lookup]

2003/07/22


065 ���s�R�[�h���ꂱ��

sprintf("abc\ndef\n"); �̂悤�ɕ�������쐬���A�t�@�C���ɏo�͂����B������G�ۂŊJ���Ɛ��������s���Ă����̂ł��邪�A�m�[�g�p�b�h�ŊJ����

abc��def��

�̂悤�ɕ\������Ă��܂��B
�o�C�i���G�f�B�^�Ŋm�F����ƁA"\n"�́A0x0A �ł������B

�G�ۂł�0x0A�����ł����s�\�����Ă���邪�A�m�[�g�p�b�h��0x0D0A������Ȃ��ƃ_���݂����ł���B

sprintf("abc\r\ndef\r\n");

MSDN
���L���̋K��

�K�� �Ӗ�
\a �x�� (0x07)
\b �o�b�N�X���b�V�� (0x08)
\f ���y�[�W (0x0c)
\n ���s (0x0a)
\r �L�����b�W ���^�[�� (0x0d)
\t �����^�u (0x09)
\v �����^�u (0x0b)
\\ �o�b�N�X���b�V�� (0x5c)
\" ���p�� (0x22)
\' �P����p�� (0x27)
\nnn ���� 8 �i�l�� nnn �ł��镶�� (������ n �� 0�`7)
\Xnn ���� 16 �i�l�� nn �ł��镶�� (������ n �� 0�`9�Aa�`f �܂��� A�`F)

2003/08/14


066 EXE/DLL�̃f�o�b�O���ꂱ��

2003/09/01


067 �A�C�R���̂��ꂱ��

2003/09/11


068 �A�E�g�v�b�g�G���A�Ƀf�o�b�O�����o�������Ƃ�

���@�P

winbase.h
VOID OutputDebugString(LPCSTR lpOutputString)
���g�p����

���@�Q

dprintf ���g�p����B


#include <dprintf.h>

------------------------
#ifdef DEBUG
   dprintf("%s=%d\n","aaa",1);
#endif

�E#include <dprintf.h> ��錾���邱�ƁB
�EDEBUG ��錾���Ȃ��ƁA�����ɂȂ�B

2003/10/30


069 �����K�w�ɓn��t�H���_���ꔭ�ō쐬�������Ƃ�

C:\aaa �����݂��Ă���Ƃ��ɁA C:\aaa\bbb\ccc\ ���쐬�������Ƃ��ɂǂ����邩�H

MakeSureDirectoryPathExists  ���g�p����Ηǂ��B


#include <imagehlp.h>


BOOL Brtn = MakeSureDirectoryPathExists("c:\\aaa\\bbb\\ccc\\");

�������Aimagehlp.lib ��g�ݍ��ޕK�v����B

�t�H���_���ɁA�X���b�V���w��͂ł��Ȃ�����

2003/10/30


070 FileView �ɂ���N���X���AClassView�ɕ\������Ȃ��I

�w�b�_�t�@�C�����v���W�F�N�g�ɓo�^����Ă��邩�m�F�I

2004/01/23


071 ���s���x�̃`���[�j���O

�o������


072 �����[�X�p�̃������ƃf�o�b�O�p�̃�����

�J���Ώۃ\�[�X���f�o�b�O�r���h�ŊJ�������Ă���B�g�p����DLL�̓����[�X�r���h����Ă���B

�J���Ώۃ\�[�X����CArray��DLL���ɓn���ă����o���Z�b�g���Ă��������A�J���Ώۑ���CArray��RemoveAll���s���ƁACArray���̃������������Assert���������Ă��܂����ۂ��������B

���@����ƁADLL���‚܂胊���[�X�pCArray�Ƀf�[�^��lj����鎞�́A�������̍ăA���P�[�g���ɃC���[�W�̓����[�X�p�ł��邪�A�f�o�b�O���Ń��������������Ƃ��́A�f�o�b�O�C���[�W�ł���ɂ��ւ�炸�A�f�o�b�O�p�̏�񂪖����̂�Assert�����������Ǝv����B

�‚܂�A�����[�X���[�h�ŃA���P�[�g�����̈���f�o�b�O���[�h�ʼn������ƁA�x�������������Ɖ��߂����B

�������@�́A�A���P�[�g���Ɖ�����̃������̎��������킹��Ηǂ���ł���B
����́A�f�o�b�O�r���h���ꂽDLL�����ł��Ȃ������̂ŁA�J���Ώۑ��̃������̎����������[�X�p�ɍ��킹���B

���̕��@
[�v���W�F�N�g�̐ݒ�]��[C/C++]��[�J�e�S���F���]��[�v���v���Z�b�T]
_DEBUG �� ���Ηǂ��B

�Q�� MSDN �F �������Ǘ��ƃf�o�b�O �q�[�v

2004/04/23


073 �����o�֐��̊֐��|�C���^

http://www1.kcn.ne.jp/~robe/cpphtml/html03/cpp03057.html

2004/05/05


074 ���z�֐��ƃC�����C���֐�

�X�[�p�[�N���X�ɂ���C�����C���w�肳�ꂽ���z�֐����A�T�u�N���X�ŃI�[�o�[���C�Y���Ă���ꍇ�A�ǂ̂悤�Ȏ����N���邩�H

�C�����C���֐��́A�R���p�C�����ɌĂь��ɓW�J����鎖������B���z�֐��͎��s���ɃT�u�N���X�����݂���ꍇ�Ɏ��s�����֐����؂�ւ��鎖���ł���̂ŁA�R���p�C�����Ɋm��ł��Ȃ��`�B

�ŁA���ۂɍs�Ȃ��Ƃǂ��Ȃ邩�H

�ǂ����C�����C���w��͖�������Ă��邩�̔@���A����ɓ��삵���B
���܂��s���Ȃ����́A���r���h�������I������Ŏ��̓n�}�b�^

2004/05/31


075 �����w��̃u���C�N�|�C���g

�\�[�X�G�f�B�^��� F9 ������A�u���C�N�|�C���g��ݒ�ł���B���A�C�ӂ̏����̎�������~���ė~�����Ƃ��́A�ȉ��̕��@���ȒP�B

  1. ��~������������ �u���C�N�|�C���g��ݒ�
  2. [���j���[�o�[]��[�ҏW]��[�u���C�N�|�C���g] �ŁA�u���C�N�|�C���g�_�C�A���O��\��
  3. [����]�����~�����Ȃǂ�ݒ肷��B

2004/05/31


076 �_�C�A���O��̃R���g���[�����J�b�`���ǂ��A�N�Z�X����ɂ�

�R���g���[�����_�C�A���O�̃����o�[�Ƃ��ăA�N�Z�X�ł���Ηǂ���ł���

�ڍ�

2004/05/31


20060713 �R�}���h���C���������ĉ��������Ă���H

int main(int argc, char* argv[])

[0]�́A�v���O���������̂��̂������ė��܂��B
[�P]�ȍ~�ɁA�������ݒ肳��Ă��܂��B

����́AWindows�ł��AUNIX�ł� �����Ȃ悤�ł��B


20080716 �v���W�F�N�g�̏����i�[�t�H���_�̐ݒ���@

VS2008

�����l�́A
C:\Documents and Settings\UserId\My Documents\Visual Studio 2008\Projects
�ł���B������A�ύX����ɂ́A�ȉ��̃_�C�A���O���ݒ肷��



20080716 VS2008 �� �s���A�� C���� �R���\�[���A�v�����쐬������

vs2008�‹��ŁA����I�ȃx�^C�\�[�X���쐬���Ă݂����B�ǂ�����Ă�邩�c�H

���ۂɂ���Ă݂��B�R�R���Q��


20080717 Windows�g���@�\�𖳌��ɂ�����

�v���W�F�N�g�̃v���p�e�B�[�V�[�g����ݒ肷��

http://msdn.microsoft.com/ja-jp/library/0k0w269d.aspx

Microsoft C/C++ �̊g���@�\
http://msdn.microsoft.com/ja-jp/library/34h23df8.aspx


20080723 �R���p�C���x�� C4996�̗}��

��Ƃ��āA�ȑO���ʂɎg���Ă��� strcpy���g�p����ƁA�R���p�C�����Ƀ��[�j���O�ɂȂ��Ă��܂��B

�@

#include <stdio.h>
#include <string.h>

#include "proto_conv_instance_id.h"


int proto_conv_setup(const char* file_name, int record_size){
    return 0;
};

int proto_conv_get_instance_id(const char* key, char* instance_id){


    strcpy(instance_id,"�C���X�^���XID�����Ă݂�");
    strcpy(key,"�L�[��ύX���Ă݂�");

    return 0;
};

�x�� 1 warning C4996: 'strcpy': This function or variable may be unsafe. �c

�����}������ɂ́A#define _CRT_SECURE_NO_DEPRECATE  ��t����Ηǂ�

�@

#define _CRT_SECURE_NO_DEPRECATE 

#include <stdio.h>
#include <string.h>

#include "proto_conv_instance_id.h"


int proto_conv_setup(const char* file_name, int record_size){
    return 0;
};

int proto_conv_get_instance_id(const char* key, char* instance_id){


    strcpy(instance_id,"�C���X�^���XID�����Ă݂�");
    strcpy(key,"�L�[��ύX���Ă݂�");

    return 0;
};
�x���ɂȂ�֐��̃w�b�_�����A��� �錾���鎖���|�C���g


20080725 �V���v���ɋ��ʊ֐��̎���

������EXE����g�p����鋤�ʊ֐��̊J��������Ƃ��́A���

�����Ƃ��V���v���Ȍ`���Ƃ肽���B���R���\�[���A�v���P�[�V�����A�X�^�e�B�b�N�����N

VS2008 �V���v���ɋ��ʊ֐��̎���


20080909 ���݂̏ꏊ�̃\�[�X �R�[�h��\���ł��܂���

VS2008

����ȃ��b�Z�[�W���\������āA�f�o�b�O�ł��Ȃ��Ȃ��Ă��܂����B

�����͉𖾂ł��Ă��Ȃ����A�ȉ��̐ݒ�𒲐�����ƁA�Ƃ肦�����A���y�ł��邩������Ȃ�

[�c�[��]��[�I�v�V����]

���̃`�F�b�N��OFF�ɂ��Ă݂邱��


20080918 �W���o�͂ƃG���[�o��

printf �Ȃǂ�p���āA���b�Z�[�W���o�͂���Ƃ��A�W���ƃG���[�𕪂�����@������

	fprintf(stdout,"okokok");
	fprintf(stderr,"ererere");

��L�̂悤�Ɏ������Ă����ƁA

hogehoge.exe > info.txt 2> err.txt

���ꂼ��
>   �W���o��   �cstdout
2>  �G���[�o�́cstderr
�@

stdout stderr �́A���ꂼ��   stdio.h  �� �錾����Ă���BMS VC++�̏ꍇ

#ifndef _STDSTREAM_DEFINED
#define stdin  (&__iob_func()[0])
#define stdout (&__iob_func()[1])
#define stderr (&__iob_func()[2])
#define _STDSTREAM_DEFINED
#endif 

�@


�߂�