방금 제네릭을 발견했고 (즉시 놀랐습니다!) 즉시 Delphi 2010 (업데이트 4 & 5 설치)이 코드가있는 경우 공포의 [DCC Fatal Error] F2084 Internal Error: L1737
메시지와 함께 실패 :Delphi Generics TDictionary로 인해 [DCC 치명적인 오류] F2084 내부 오류 : L1737 메시지가 발생했습니다.
// Global array of list
IDsList : Array [1..5] Of TDictionary<Int64, Int64>;
function MyProc;
var
i : Integer;
Enum : TDictionary<Int64, Int64>.TPairEnumerator;
begin
// ...
Enum := IDsList[i].GetEnumerator;
while Enum.MoveNext do
begin
// ...
end;
end;
정확하게, 델파이 내가 크게 내 코드를 단순화 배열을 사용하여이 줄 Enum := IDsList[i].GetEnumerator;
을 언급하지 않는 컴파일에 실패를하는 방식이있다 이 L1737 오류 메시지를 피하십시오?
추신. 델파이에 익숙하지 않습니다. 제네릭 만!
귀하의 코드가 실제 프로젝트에서이 문제를 해결하지 못했을 까봐 두렵습니다. 나는 그 문제를 그 선로까지 추적했는데, 확실하다. 그래서 그것은 내 프로젝트에서 야기 된 다른 것이어야한다. 나는 XE2를 소유하고 있지만, 특히이 프로젝트를 업그레이드하는 데 정말로 귀찮은 일이 결코 없었습니다. 업그레이드를 시도 할 것이고, 나중에 발견 할 것입니다. 감사합니다! – TheDude
작은 업데이트 : 구현 섹션에 '여기에 제안 됨'(https://forums.codegear.com/message.jspa?messageID=171141)과 같이 'Enum'선언을 넣습니다. '구현 ... var 열거 형 : TDictionary .TPairEnumerator; '이제 컴파일됩니다. 그러나 Delphi 2010과 제네릭은 잘 작동하지 않는다는 점에 동의하는 경향이 있습니다. –
TheDude
OK, 그러나 실제로는 전역 변수를 사용할 수 없습니다. –