원본 D7 구성 요소가 가져 오는 이상한 Twebbrowser 오류를 피하려고 XE5에 다시 컴파일해야하는 오래된 프로젝트가 있습니다. 이 코드는 D7에서는 잘 작동하지만 XE5에서는 작동하지 않습니다.델파이 7에서 XE5로 다시 컴파일 할 때 오류가 발생했습니다
function GetFrame(FrameNo: Integer; WB: TWEbbrowser): IWebbrowser2;
var
OleContainer: IOleContainer;
enum: IEnumUnknown;
unk: IUnknown;
Fetched: PLongint;
begin
while WB.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
if Assigned(WB.document) then
begin
Fetched := nil;
OleContainer := WB.Document as IOleContainer;
OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum);
Enum.Skip(FrameNo);
Enum.Next(1, Unk, Fetched);
Result := Unk as IWebbrowser2;
end
else
Result := nil;
end;
내가 확인했고 EnumObjects에 대한 매개 변수는 두 버전 모두에서 동일하지만, XE5 말한다 "E2033. 실제와 공식 VAR 매개 변수의 유형이 동일해야합니다." 이 강아지를 어떻게 다시 컴파일 할 수 있습니까? 감사. 평화!
컴파일러 오류가 발생하면 어떤 행을 생성하는지 알려주십시오. 또한 컴파일러 오류에 대한 설명서를 읽으십시오. E2033은 문서화되어있다. –
줄은 OleContainer.EnumObjects (OLECONTF_EMBEDDINGS, 열거 형)입니다. –