我试图将一个优秀的Windows窗体程序移植到Linux并收到此错误:
System.EntryPointNotFoundException: GetUpdateRect
at (wrapper managed-to-native)
CDBurnerXP.Controls.NativeMethods:GetUpdateRectInternal
(intptr,System.Drawing.Rectangle&,bool)
at CDBurnerXP.Controls.NativeMethods.GetUpdateRect
(System.Windows.Forms.Control cntl) [0x0000f] in
<ce4ca0f630654e4c8c1f96509f1eae82>:0
有没有办法支持对#的C#调用 NativeMethods:GetUpdateRect noon Mono on Lubuntu 16.04.1?
编辑:
谢谢,knocte,你的评论。此编辑引用了尝试引用此函数的代码(因为注释不允许任何格式化):
[DllImport("user32.dll", EntryPoint = "GetUpdateRect", CharSet = CharSet.Auto)]
private static extern IntPtr GetUpdateRectInternal(IntPtr hWnd, ref Rectangle r, bool eraseBackground);
答案 0 :(得分:0)
嗯,答案是我问的是错误的问题 我本来应该问&#34;我如何替换依赖于非便携式Windows系统调用的ObjectListView.cs来将这个程序移植到Linux上的Mono?&#34;
ObjectListView似乎在Windows上运行良好,但与Linux或Mac系统不兼容。在这里有一个非常好的讨论 ObjectListView discussion board。 Steve Hiner的评论(2015-11-29)改变了我的搜索方向。史蒂夫的方法是&#34;我已经创建了一个代理,它在Windows上使用OLV,在Linux和Mac上使用股票列表视图。这将是OLV提供伪单声道支持的一种方式,它可以只使用股票列表视图而不需要任何花哨的功能。&#34;
感谢knocte让我思考正确的方向。