最近要做个ASP.NET的东东

一个Online Judge的东西,在线判断用户提交的程序是否符合题目要求。


得用调用Win32 API,给另外一个win32 app发消息,告诉他有人提交了source code让他去编译,处理,判断输出结果是否正确。
我晕了,又得用P/Invoke,这个东西真是,书上说的都挺简单,什么参数类型对应什么参数类型,可到时候真要用哪个API就不知道怎么写了。
憋了半天,总算憋出来了。
[color=#0000D0]using[/color] System;
[color=#0000D0]using[/color] System.Runtime.InteropServices;
[color=#0000D0]namespace[/color] EJudge
{
    [color=#008000]/// <summary>[/color]
    [color=#008000]/// Win32 API Wrapper![/color]
    [color=#008000]/// By K-Res[/color]
    [color=#008000]/// </summary>[/color]
    [color=#0000D0]public[/color] [color=#0000D0]class[/color] CWinAPI
    {
        [color=#0000D0]public[/color] CWinAPI()
        {
            [color=#008000]//[/color]
            [color=#008000]// TODO: Add constructor logic here[/color]
            [color=#008000]//[/color]
        }
        [color=#008000]//导入MessageBox函数[/color]
        [DllImport([color=#808080]”user32.dll”[/color], EntryPoint=[color=#808080]”MessageBox”[/color])]
        [color=#0000D0]public[/color] [color=#0000D0]static[/color] [color=#0000D0]extern[/color] [color=#0000D0]int[/color] MsgBox([color=#0000D0]int[/color] hWnd, String text, String caption, uint type);
        [color=#008000]//PostMessage函数,给处理代码程序发送消息,有事要做啦[/color]
        [DllImport([color=#808080]”User32.dll”[/color],EntryPoint=[color=#808080]”PostMessage”[/color])]
        [color=#0000D0]public[/color] [color=#0000D0]static[/color] [color=#0000D0]extern[/color] [color=#0000D0]int[/color] [b][color=#000080]PostMessage[/color][/b]
        (
            [color=#0000D0]int[/color] hWnd,    [color=#008000]// handle to destination window[/color]
            [color=#0000D0]int[/color] Msg,     [color=#008000]// message[/color]
            [color=#0000D0]int[/color] wParam,  [color=#008000]// first message parameter[/color]
            [color=#0000D0]int[/color] lParam   [color=#008000]// second message parameter[/color]
        );
        [color=#008000]//FindWindow函数,查找处理程序窗口,从而发消息[/color]
        [DllImport([color=#808080]”User32.dll”[/color],EntryPoint=[color=#808080]”FindWindow”[/color])]
        [color=#0000D0]public[/color] [color=#0000D0]static[/color] [color=#0000D0]extern[/color] [color=#0000D0]int[/color] [b][color=#000080]FindWindow[/color][/b]([color=#0000D0]string[/color] lpClassName,[color=#0000D0]string[/color] lpWindowName);
        [color=#008000]//定义消息常数[/color]
        [color=#0000D0]public[/color] [color=#0000D0]const[/color] [color=#0000D0]int[/color] WM_USER = 0x400;
        [color=#0000D0]public[/color] [color=#0000D0]const[/color] [color=#0000D0]int[/color] WM_SRCINCOMING = WM_USER + 256;
    }
}

博主友情提示:

如在您的评论中需要提及如QQ号、微信号、电子邮件地址或其他隐私敏感信息,欢迎通过>>博主专用加密工具<<加密后发布,原文只有博主可以看到。