gpt4 book ai didi

c# - 通过 SendMessage 将字符串从 C# 发送到 MFC

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:09 25 4
gpt4 key购买 nike

我知道如何通过使用 LPCTSTR 代替并设置 DllImport 以调用 LPstr 转换来 PInvoke 一个需要 CString 的方法。

但是,如果 LPARAM 是一个 IntPtr,我该如何使用 SendMessage 实现呢?

这行得通吗?

    [DllImport("user32.dll", CharSet = CharSet.Ansi)]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam,
[MarshalAs(UnmanagedType.LPStr)] String lParam);

最佳答案

您可以像这样简单地声明它:

[DllImport("user32.dll", SetLastError=true)]
static extern IntPtr SendMessage(
IntPtr hWnd, uint Msg, IntPtr wParam, string lParam);

默认编码是作为指向空终止字符数组的指针。如果你真的想要 ANSI 版本,那么这是默认的。如果您想在失败时捕获错误代码,您应该使用 SetLastError

我相信你知道,如果窗口处于不同的进程中,它就无法工作。

关于c# - 通过 SendMessage 将字符串从 C# 发送到 MFC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10556244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com