Q&A

  • acm 컴포넌트에서 type형이 다르다는 에러가 발생합니다.
msacm.pas에 다음과같이 정의되 있구여...

type

HACMSTREAM = THandle;

PHACMSTREAM = ^HACMSTREAM;



acmconvetor.pas 에 다음과 같이 할때..

constructor TACMConvertor.Create(AOwner: TComponent);

begin

inherited;

FStreamHandle := nil; <-- 요 부분에서 incompatible type 'cadinal' and 'pointer'

InputBufferSize := 2048;

UseRealTime := False;

with FormatIn.Format do begin

wFormatTag := 1;

nChannels := 1;

nSamplesPerSec := 22050;

nAvgBytesPerSec:= 22050;

nBlockAlign:=1;

wbitspersample := 8;

cbSize := SizeOf(TACMWaveFormat);

end;

with FormatOut.Format do begin

wFormatTag := 1;

nChannels := 1;

nSamplesPerSec := 22050;

nAvgBytesPerSec:= 22050;

nBlockAlign:=1;

wbitspersample := 8;

cbSize := SizeOf(TACMWaveFormat);

end;



end;



이 나오구여...

procedure TACMConvertor.OpenStream;

procedure BuildHeader;

begin

with FStreamHeader do begin

cbStruct := SizeOf(TACMStreamHeader);

fdwStatus := 0;

dwUser := 0;

pbSrc := FBufferIn;

cbSrcLength := InputBufferSize;

cbSrcLengthUsed := 0;

dwSrcUser := 0;

pbDst := FBufferOut;

cbDstLength := OutputBufferSize;

cbDstLengthUsed := 0;

dwDstUser := 0;

end;

end;





var

Result : MMResult;

begin

FStartOfStream := True;



// Changed by Marcel Isler: Set real time according to the property.

// Set this to False to enables conversion to TrueSpeech

if (FUseRealTime) then

begin

Result := acmStreamOpen(FStreamhandle, nil, FormatIn.Format, FormatOut.Format, nil, 0, 0, 0); ^---- 이부분에서 incompatible 'cadinal' and 'phacmstream' 이라는 에러가 나오네여......

end

else

begin

Result := acmStreamOpen(FStreamhandle, nil, FormatIn.Format,

^-------- 같은에러 출력됨...

FormatOut.Format, nil, 0, 0, ACM_STREAMOPENF_NONREALTIME);

end;

RaiseException('acmStreamOpen:',Result);



이같은 에러가 출력될때의 에러 수정을 어떻게 해야됩니까?

여기에 acm에 관련된 자료가 많이 올라와 있는데 다운 받은 자료가 전부다 이와같은 에러가 발생하네여......



4일째 밤새우고 있습니다.....

0  COMMENTS