首页 > 编程语言 >怎么将C#通过发消息传递给指定C++窗口

怎么将C#通过发消息传递给指定C++窗口

时间:2023-06-09 10:36:15浏览次数:47  
标签:IntPtr C# WM C++ SendMessage USER 消息传递

C# 发送方

//引入 Interop 库
using System.Runtime.InteropServices;

//定义 SendMessage API
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

//定义发送消息的常量
static uint WM_USER = 0x0400;

//在需要发送消息的位置调用 SendMessage API
SendMessage(hWnd, WM_USER, IntPtr.Zero, IntPtr.Zero);
//如果是字符串
SendMessage(hwnd, WM_USER, Marshal.StringToHGlobalAnsi(""), (IntPtr)0);

C++接收方

//如果是接收字符串
LPCSTR str = reinterpret_cast<LPCSTR>(wParam);
CString cstr = CString(str);
//如果是int类型
int code = wParam

hwnd为C++指定窗口

 

标签:IntPtr,C#,WM,C++,SendMessage,USER,消息传递
From: https://www.cnblogs.com/INSTANTMOC/p/17468443.html

相关文章

  • document.evaluate的详细用法(Xpath获取节点)
    document.evaluate的详细用法2006-12-2818:03使用 Greasemonkey 时会遇到的功能最为强大的一个工具就是 evaluate 函数。通过使用XPath这种查询语言,它可以用来寻找页面中的元素,属性和文本。 举个例子来说,如果您想获得某个页面上的全部链接。您也许会想到使用document.getEle......
  • javaScript通用数据类型校验_1
    /***取得字符串的字节长度*/1.functionstrlen(str)2.{3.vari;4.varlen;5.6.len=0;7.for(i=0;i<str.length;i++)8.{9.if(str.charCodeAt(i)>255)len+=2;elselen++;10.}11......
  • OpenHarmony 3.2 Release新特性解读之驱动HCS
    OpenAtomOpenHarmony(以下简称“OpenHarmony”)开源社区,在今年4月正式发布了OpenHarmony3.2Release版本,标准系统能力进一步完善,提升了系统的整体性能、稳定性和安全性。此次版本对于驱动也提供了一些新的特性,极大的方便了驱动开发工作。其中针对HCS文件开发提供新的开发思路,本文就......
  • 记录一次 nas docker 运行出错 使用Python脚本检查错误并重启对应容器 npc 运行出
    importosimporttimeimportdatetimeimportsubprocessimportmysql.connector#Docker容器名称container_name="containerName"#MySQL数据库连接配置db_host="localhost"db_user="*********"db_password="*********"db_......
  • java关键字native、static、final详解
    native: native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。JNI是Java本机接口(JavaNativeInterface),是一个本......
  • 显示器亮度全自动调整ControlMyMonitor
    前言某显示器具有光传感器,宣传上说了此显示器根据环境亮度自动调整显示器背光亮度让眼睛更舒适。实际上开启了这个功能后,显示器的亮度确实会受到环境亮度的变化而变化,例如用杯子遮挡住一部分的显示器感光小窗口,显示器亮度就下降了,但是我在不同的网页,桌面和软件不同画面切换的时候,显......
  • docker 安装 es-head 以及Content-Type header请求头错误解决
    拉取es-head镜像,启动dockerpullmobz/elasticsearch-head:5dockerrun-itd--namees-head-p9100:9100mobz/elasticsearch-head:5使用上面的镜像启动会有Content-Typeheader请求头错误的问题,可以进入容器中修改js文件,文章最后有提及,也可编写dockerfile重做镜像,避免......
  • Golang之Reflect包
    Golang之Reflect什么是Golang的Reflect包?Golang的Reflect包(reflect)是一个强大的内置包,它提供了在运行时进行程序反射的功能。通过使用Reflect包,我们可以在不了解类型的情况下,动态地检查变量的类型、调用函数和方法,以及修改变量的值。为什么使用Golang的Reflect包?Golang的Reflec......
  • 菜鸟攻略–C语言多文件编程初探(二):使用 gcc 手动编译多文件 C 程序
    step1:下载安装Dev-C++已经安装了Dev-C++或系统中的可以跳过这步。去官网下载Dev-C++。我昨天下载,发现有点慢,所以我把安装文件放到百度网盘了,供大家下载,下载链接为:http://pan.baidu.com/s/1pLPenDx。开始安装,记住安装位置。在安装时只能选择英文,安装完成后,第一次启动时可以选择......
  • Windows证书管理器 && SSL certification && WSL-Docker: curl: (60) SSL certificat
    深入浅出certmgr——Windows证书管理器https://www.fke6.com/html/91605.html计算机安全是当前社会的一个重要议题,证书是一种重要的安全机制,负责证明数据、软件或者人的身份和信誉。certmgr(即“证书管理器”)是Windows中专门用于证书管理的工具。本文将从多个方面对certmgr进行深......