首页 > 编程语言 >关于使用C#注入C++的封装DLL后打印内容乱码

关于使用C#注入C++的封装DLL后打印内容乱码

时间:2024-07-31 15:08:28浏览次数:14  
标签:IntPtr C# DllImport C++ DLL 乱码

最近因需要,用C++写了个钩子的DLL,一切工作测试通过后,放到C#里使用P/Invoke调用,发现部分乱码,最后反复测试,才发现一个问题,原来SetWindowsHookEx这个函数,也是分A版和W版,最后换了就正常了,附上对比。。

乱码

  [DllImport("user32.dll", SetLastError = true]
        public static extern IntPtr SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hMod, uint dwThreadId);

正常

  [DllImport("user32.dll", SetLastError = true,CharSet = CharSet.Unicode)]
        public static extern IntPtr SetWindowsHookExW(int idHook, HookProc lpfn, IntPtr hMod, uint dwThreadId);

标签:IntPtr,C#,DllImport,C++,DLL,乱码
From: https://www.cnblogs.com/push-lou/p/18334672

相关文章

  • 虚拟机安装Rock和ubuntu并实现shell远程连接
    一、VMware安装在网上下载安装包打开安装包一路点击下一步直到完成安装即可。安装完成之后可以根据需要修改网络配置使用默认也可。在“编辑”-“虚拟网络编辑器”中修改弹出的窗口中点击“更改配置”二、虚拟机安装rocky8.62.1下载镜像可在官网或者国内开源镜像站下载2......
  • 核心(Hutool-core)日期时间对象-DateTime
    由来考虑工具类的局限性,在某些情况下使用并不简便,于是DateTime类诞生。DateTime对象充分吸取Joda-Time库的优点,并提供更多的便捷方法,这样我们在开发时不必再单独导入Joda-Time库便可以享受简单快速的日期时间处理过程。DateTime类继承于java.util.Date类,为Date类扩展了众多简便......
  • 使用 chatgpt 从采访脚本中提取问题和答案
    我的要求是从面试脚本中提取问题和答案,并基于Skill.csv文件中给出的技能列表。我创建了生成人工智能模型来从给定的技能列表中提取问题和答案。但它只给出了30%正确的问题和答案以及技能标签。请找到我的下面的代码并执行需要的操作。我的输入是csv文件,其中有一列包含“pyh......
  • Adobe Acrobat DC 2021版安装教程【超简单、超详细】
    AdobeAcrobatDC是Adobe提供的一款专业PDF解决方案,具有许多强大的功能,可以满足各种文档处理需求。注意事项:①下载与激活过程中一定要关闭杀毒软件         ②提供的所有软件都是永久版的         ③软件仅供学习下载使用,不可用于......
  • docker 拉取镜像超时:error pulling image configuration: download failed after atte
    之前是正常的,今天就罢工了,可能原因是国外镜像不稳定,被针对了吧。errorpullingimageconfiguration:downloadfailedafterattempts=6:dialtcp168.143.171.189:443:i/otimeout那就改为国内镜像:1.创建/etc/docker目录(已有的跳过)sudomkdir-p/etc/docker 2.修改......
  • Intent中的四个重要属性——Action、Data、Category、Extras
    Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递。通过其自带的属性,其实可以方便的完成很多较为复杂的操作。例如直接调用拨号功能、直接自动调用合适的程序打开不同类型的文件等等。诸如此类,都可以通过设置Intent属性来完成。Intent主要有以下四个重要......
  • 尝试使用 pyodbc 连接到 SQL Server 数据库时出现操作错误
    我正在尝试使用Python3中的pyodbc连接到SQLServer数据库。但是当我尝试建立连接时出现错误。我做了这样的事情:importpyodbcconn=pyodbc.connect('Driver={ODBCDriver18forSQLServer};Server=192.168.2.250;Database=DB;UID=username;PWD=password;')......
  • Tenable Nessus 10.8.0 (macOS, Linux, Windows) 发布,新增功能概览
    TenableNessus10.8.0(macOS,Linux,Windows)下载-#1漏洞评估解决方案TenableNessus10.8.0(2024-07-30)发布Nessus试用版自动化安装程序,支持macOSSonoma、RHEL9和Ubuntu24.04请访问原文链接:https://sysin.org/blog/nessus-10/,查看最新版。原创作品,转载请保留......
  • 如何用C语言写一个简易的shell
    参考文章https://danishpraka.sh/posts/write-a-shell/参考文章是英文的,我基本上是结合自己的理解翻译了一下,代码加了些注释,对阅读英文感兴趣的可以直接看这篇就可以了然后原作者还增加了管道等等功能,在参考文章最后的click那里,可以跳转到github上的仓库运行环境linux环境即......
  • VMWare设置桥接模式,CentOS7设置静态IP
    1、在VMWare中给虚拟机设置为桥接模式,如下图: 2、设置CentOS7静态IP(1)进入网络配置文件目录,命令如下:cd/etc/sysconfig/network-scripts/(2)查看网络配置文件(3)打开网络配置文件,命令如下:vimifcfg-ens33(4)参考以下对配置文件进行修改DEVICE=ens33#虚拟机网卡名......