利用WM_COPYDATA在应用程序间传递数据(C#)
利用WM_COPYDATA在应用程序间传递数据很简单,开销也小
一、传递数据部分
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace ThreeTorches
{
public struct Copydatastruct
{
public IntPtr dwData;
public int cbData;
public IntPtr lpData;
}
public static class XianaoMessage
{
[DllImport("User32.dll", EntryPoint = "FindWindow")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
//发送数据的消息常数
public const int WmCopydata = 0x4A;
/// <summary>
/// Win32的发送消息函数
/// </summary>
/// <param name="hwnd">接收消息的窗口句柄</param>
/// <param name="msg">消息ID</param>
/// <param name="wparam">高位信息</param>
/// <param name="lparam">低位信息</param>
/// <returns></returns>
[System.Runtime.InteropServices.Dll
相关文档:
先贴代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Ref_and_Out_test
{
class Program
{
static void Main(string[] args)
& ......
为什么要使用C#泛型?
为了了解这个问题,我们先看下面的代码,代码省略了一些内容,但功能是实现一个栈,这个栈只能处理int数据类型:
public class Stack
{
private int[] m_item;
public ......
一.神奇的var
在C#3.0中增加了一个变量声明var,这个声明和JavaScript 的 var类似,但也有不同。
1. 相同点,它可以用var来声明任何类型的局部变量。
2. 不同点,它仅仅负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,而且只能是局部变量。
二.相同点
它可以声明
var integer = ......
枚举
枚举类型声明为一组相关的符号常数定义了一个类型名称。枚举用于“多项选择”场合,就是程序运行时从编译时已经设定的固定数目的“选择”中做出决定。
枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。例如,假设您必须定义一个变量,该变量 ......