Start Debugging

Tag: interop

4 posts

O que é o layout transparente de struct, e por que um struct wrapper de campo único muda a convenção de chamada no .NET?
Um struct transparente é aquele que a ABI trata exatamente como seu único campo. O .NET 11 não oferece essa garantia: um struct que encapsula um double é passado em RCX no Windows x64, mas em XMM0 no Linux e no macOS. Veja o disassembly do JIT do .NET 11 em três ABIs, os bugs de P/Invoke que isso causa e como escrever tipos wrapper seguros em qualquer fronteira.