Windows�Q�[���v���O���~���O

MP3�v���C���[����遄dll�ɂ��Đ�

�@�ŋ߁A�g�уv���C���[�̃u�[���ȂǂŘb��̂l�o�R�v���C���[������Ă݂܂��傤�B�l�o�R�Ƃ͊ȒP�Ɍ����Ή����̈��k�`���̎��ł�����A�f�R�[�h��������΍Đ��o����킯�ł��B����́A�Đ��Ƀt���[�E�G�A�Ƃ��Č��J����Ă���MP3�p���C�u����VBMP3.dll�i(C)������㎁�j�𗘗p���Ă݂܂����B���̃��C�u�������g���ƁA�t�@�C�������w�肷�邾���ŊȒP�ɂl�o�R�t�@�C�����Đ����鎖���o���܂��B

dll�̗��p

�@�l�o�R�p���C�u����VBMP3.dll�́Adll�Ƃ����`���̃��C�u�����ɂȂ��Ă��܂��Bdll�́AWindows�Ŋ֐������C�u����������W���I�Ȍ`���ł`�o�h�̎��̂�����dll�̏W���ł��Bdll���g���̂͊ȒP�ŁA�܂��֐��̌^��錾���Ċ֐���dll�ł��鎖���R���p�C���ɒʒm���邾���Ō�͒ʏ�̊֐��Ɠ������o�Ŏg�������o���܂��B�‚܂�֐��̌^�����킩��΁A�����Ă��̌^�������������o����΁A�ǂ�Ȍ���ł�dll���̊֐��𗘗p�o����킯�ł��B���ہA����g��VBMP3.dll�����̖��̒ʂ�ŏ���VisualBasci�p�ł��������̂�VC++�œ���m�F����AVC++�p�̃w�b�_��t���Č��J���ꂽ�悤�ł��B�����āA���񂱂��ʼn��߂�Delphi�ł̓�����m�F�ł����킯�ł��ˁB
�@�l�b�g���[�N��ɂ͑��ɂ��֗���dll������������J����Ă��܂�����A���낢���dll�������Ă݂�Ɨǂ��ł��傤�B�����̏ꍇ�Adll�ɂ�C/C++�p�̃w�b�_�����t���Ă��܂��񂪁A�w�b�_��h�L�������g�ȂǂŊ֐��̌`���𒲂ׂĎ����Ő錾���鎖��dll��Delphi�ł��g�������o���܂��B�܂��A�ʂ̏ꏊ��Delphi�p�̃w�b�_�����J����Ă���ꍇ������܂��B

�@�ł́A��������g��VBMP3.dll�̏������֐�vbmp3_init()��錾���Ă݂܂��傤�B���̊֐��́AVC++�p�̃w�b�_�t�@�C���ňȉ��̂悤�ɐ錾����Ă��܂��̂ŁA����Ɠ����`���̐錾��Delphi�ōs���Ηǂ��킯�ł��B

  BOOL APIENTRY vbmp3_init();

�@���̊֐��̌^�錾��DLL�錾��Delphi�ōs���ƈȉ��̂悤�ɂȂ�܂��B

  function vbmp3_init:Boolean;stdcall;external 'VBMP3';

�@�O����function vbmp3_init:Boolean;���֐����̂̌^�ł��ˁB����stdcall�͈����̎󂯓n���`�����w�肷��u�Ăяo���K��v�Ƃ������̂ŁAdll�ł͒ʏ�stdcall�ɂȂ�܂��B�����āA�Ō��external 'VBMP3'�ŁA���̊֐���VBMP3.dll���ɂ��鎖��錾����킯�ł��B

�@��x���̐錾�����Ă����΁A��̓v���O�������Œʏ�̊֐��Ɠ����悤��vbmp3_init���g�p�ł��܂��B����́A�Ƃ肠�����Đ��������鎖�ɂ��āA�K�v�ɂȂ肻���Ȋ֐���錾���Ă����܂����B���̐錾�́Aimplementation�߂ōs���܂��B

  function vbmp3_init:Boolean;stdcall;external 'VBMP3';
  function vbmp3_open(pszName:PChar;pInfo:Pointer):Boolean;
    stdcall;external 'VBMP3';
  function vbmp3_play:Boolean;stdcall;external 'VBMP3';
  function vbmp3_free:Boolean;stdcall;external 'VBMP3';
  function vbmp3_close:Boolean;stdcall;external 'VBMP3';

�@���O������΁A��̋@�\�͑z���ł��܂��ˁB�܂��Avbmp3_init�ŏ�����������A�Đ�����t�@�C����open���Aplay����B����ōĐ��ł��܂��B�������A���Ƀt�@�C�����J���Ă��邩������Ȃ��̂ŁAopen�̑O��close���܂��傤�B�A�v���P�[�V�����̏I�����ɂ́Afree�Ń��C�u�������g�p���Ă�����������������܂��B

�@�Ȃ��Avbmp3_open�Ń|�C���^��n���Ă��܂����A����͈ȉ��̌`�̍\���̂̃A�h���X�ł��B���̍\���̂ɂ́A�Đ����Ԃ�Ȗ��Ȃǃt�@�C���Ɋւ����񂪓����ė��܂��B

  InputInfo=packed record
    szTrackName:array [0..127] of char;
    szArtistName:array [0..127] of char;
    channels:Integer;
    bitRate:Integer;
    samplingRate:Integer;
    totalSec:Integer;
  end;

�@����̃v���O�����ł́A���̍\���̂��O���[�o���ϐ��Ƃ��ėp�ӂ��A@���Z�q�ō\���̂̃A�h���X��n���悤�ɂ��܂����B

�v���O����

�@�v���O�������N�����āu�J���v�{�^�����N���b�N����ƃt�@�C���I���̃_�C�A���O���o�Ă���̂ŁA�l�o�R�t�@�C����I�����Ă��������B�t�@�C����I������Ƃ��̃t�@�C�����Đ����܂��B�u�J���v�{�^���̃C�x���g�n���h���͈ȉ��̒ʂ�B

  procedure TForm1.Button1Click(Sender: TObject);
  begin

    if not(OpenDialog1.Execute) then
      Exit;

    vbmp3_close;
    vbmp3_open(PChar(OpenDialog1.FileName),@info);
    vbmp3_play;

  end;

�@�Ȃ��A�v���O�����̎��s�ɂ�VBMP3.dll�����s�t�@�C���Ɠ����f�B���N�g���A�܂���Windows�̃V�X�e���f�B���N�g���ɂ����Ă����K�v������܂��B

�@�Ō�ɂȂ�܂������AVBMP3.dll�Ƃ����f���炵�����C�u���������J����Ă����҂̊������i�~�P�j����Ɋ��ӂ������܂��B���ہA���񎄂��l�o�R���Đ����邽�߂ɂ�������ƌ����ΒP�Ɋ֐��E�\���̂̐錾�ƃt�@�C�����̐ݒ肾���ŁA��͂��ׂ�VBMP3.dll�̋@�\�ōĐ��o���܂����B

�v���O�����_�E�����[�h�iDelphi2�ȏ�A158KB�j
�߂�