谁试过用C#+API挑战MessageBoxIndirect-CSDN论坛

 我来答
百度网友ded4135
高粉答主

2016-03-05 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.7万
采纳率:87%
帮助的人:1.2亿
展开全部
前提是你的这个MsgParams结构必须Marshal正确哦,如果不正确的话不会导致调用Marshal.SizeOf的失败,但你的这个函数仍然无法调用。cbSize的大小是为以后扩展用的

public struct HelpInfo
{
}
public delegate void MsgboxCallback(HelpInfo helpInfo);

[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]
public struct MsgboxParams
{
public int cbSize;
public IntPtr hwndOwner;
public IntPtr hInstance;
public string text;
public string caption;
public int style;
public string icon;
public int helpId;
public IntPtr callback;
public int languageId;
}
class Program
{

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int MessageBoxIndirect(ref MsgboxParams param);

[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr LoadIcon(IntPtr hInstance, string iconName);

static void Main(string[] args)
{
MsgboxParams mp=new MsgboxParams();

mp.hwndOwner = IntPtr.Zero;
mp.hInstance = IntPtr.Zero;
mp.text = "ok";
mp.caption = "ti xing";
mp.style = 0;
mp.icon = "32512";
mp.helpId = 0;
mp.callback = IntPtr.Zero;
mp.languageId = 0;
mp.cbSize = Marshal.SizeOf(mp);

MessageBoxIndirect(ref mp);
}
}
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式