[英]How to declare the following using PInvoke method?
對於簡單的Messagebox,請檢查http://pinvoke.net/ ,
[DllImport("user32.dll")]
static extern MessageBoxResult MessageBox(IntPtr hWnd, string text, string caption, int type);
但是,找不到編譯器報告MessageBoxResult。 如果我將MessageBoxResult更改為int,則可以正常編譯。 關於這個問題的任何提示嗎?
該定義也在pinvoke.net上給出 :
/// <summary>
/// Represents possible values returned by the MessageBox function.
/// </summary>
public enum MessageBoxResult : uint
{
Ok = 1,
Cancel,
Abort,
Retry,
Ignore,
Yes,
No,
Close,
Help,
TryAgain,
Continue,
Timeout = 32000
}
但正如其他提到的那樣,請始終在MSDN上檢查pinvoke.net給出的值是否有效。
MessageBoxResult在此處定義:
System.Windows.MessageBoxResult
只需添加
using System.Windows;
如果查看該函數的MSDN頁面 ,您會看到它確實返回一個int,這是本機返回類型。 我懷疑pinvoke.net用MessageBoxResult
掩蓋了這一點,盡管他們的頁面在兩個地方都提到了該函數返回一個int(在messageboxresult下,它說“ uint 0-6”,然后在示例中,他們將函數編寫為返回一個int)。 int)。 我建議只使用一個int並對其進行處理(或盡可能轉換為DialogResult)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.