저는 Lubuntu 16.04.1의 Mono에서 매우 유용한 오픈 소스 Windows 프로그램 "Ketarin"을 컴파일하려고 합니다.
다음 코드를 사용하여 user32.dll에 있는 "GetUpdateRect" 함수를 사용합니다.
[DllImport("user32.dll", EntryPoint = "GetUpdateRect", CharSet = CharSet.Auto)]
private static extern IntPtr GetUpdateRectInternal(IntPtr hWnd, ref Rectangle r, bool eraseBackground);
이것은 이식 불가능한 Windows 관련 함수/시스템 호출이므로 Windows에서 GetUpdateRect가 수행하는 작업을 수행하는 Linux의 Mono를 통해 사용할 수 있는 함수나 메서드를 알려줄 수 있는 사람이 있는지 묻고 있는 것 같습니다.
Windows 기능과 Mono-on-Linux 기능 간에 동등한 표준 목록이 있습니까?
어쩌면 Windows 프로그램을 포팅한 사람들에게 그들이 "놀고 있는" Linux에서 실행되도록 요청해야 할 수도 있습니다.
이런 점들을 고려해 주셔서 감사합니다.
답변1
글쎄, 대답은 내가 잘못된 질문을 했다는 것입니다.
이 Windows 함수는 ObjectListView.cs에 의해 호출되며 제가 포팅하는 프로그램뿐만 아니라 많은 프로젝트와 솔루션에서 사용됩니다.
Windows 시스템 호출을 너무 많이 사용하므로 개발자는 Linux나 Mac에서 실행되도록 시도하지 않았습니다. 거기엔 좋은 토론이 있어ObjectListView 토론 포럼. Steve Hiner(2015-11-29)의 댓글이 내 검색 방향을 바꾸었습니다. Steve의 접근 방식은 "저는 Windows에서 OLV를 사용하고 Linux 및 Mac에서 주식 목록 보기를 사용하는 프록시를 만들었습니다. 이는 멋진 기능 없이 주식 목록 보기만 사용하여 OLV가 의사 모노 지원을 제공할 수 있는 방법이 될 것입니다. ."
Steve가 설명하는 작업을 수행하는 방법에 대해 다른 질문을 해야 할 수도 있습니다.