如何在此 RaiseExeption 调用中删除 "W1047 Unsafe code '@ operator'"

How do I get rid of "W1047 Unsafe code '@ operator'" in this RaiseExeption call

Delphi 2007 中的以下代码给我警告

W1047 Unsafe code '@ operator'

在将@ThreadNameInfo 传递给 RaiseException 的行中:

procedure SetThreadName(const _Name: AnsiString);
var
  ThreadNameInfo: TThreadNameInfo;
begin
  ThreadNameInfo.FType := 00;
  ThreadNameInfo.FName := PAnsiChar(_Name);
  ThreadNameInfo.FThreadID := $FFFFFFFF;
  ThreadNameInfo.FFlags := 0;
  try
    RaiseException(6D1388, 0, SizeOf(ThreadNameInfo) div SizeOf(LongWord),
      @ThreadNameInfo); // --> Here
  except
    // ignore
  end;
end;

除了禁用 "unsafe code" 的编译器警告外,还有其他方法可以消除此警告吗?这个警告还有意义吗,因为 Delphi 不再支持 dotNET?

我尝试将参数显式转换为 PDWord(最后一个参数的声明类型),但没有任何改变。

此警告旨在用于将由 .net 编译器编译的代码。如果您没有使用 Delphi .net 编译器,您可以而且应该取消该特定警告。