簡體   English   中英

是否可以直接使用Microsoft.Win32命名空間中的Win32Native類?

[英]Is it possible to directly use the Win32Native class from the Microsoft.Win32 namespace?

有沒有辦法直接使用Win32Native命名空間?

我想直接調用方法:

Win32Native.SendMessageTimeout(new IntPtr(0xffff), 0x1a, IntPtr.Zero, "Environment", 0, 0x3e8, IntPtr.Zero) == IntPtr.Zero;    

而不是宣布它:

[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr SendMessageTimeout(IntPtr hWnd, int Msg, IntPtr wParam, string lParam, uint fuFlags, uint uTimeout, IntPtr lpdwResult);

那有什么機會嗎?

我假設你的意思是Microsoft.Win32.Win32Native類。 不,你不能叫它,它是內部的。 你可以用反射來做一些事情,但那會更加丑陋。

Microsoft可以隨時更改API; 通過新的框架版本,服務包等。由於它是內部的,即使他們在您直接調用它時進行了破壞您的應用程序的更改,他們也沒有義務支持它。

簡而言之:自己編寫平台調用。

您還應該查看http://pinvoke.net/ 此站點包含許多已為您定義的平台調用簽名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM