如何制作 PInvoke 友好的本机 API?
如何使原生 API 对 PInvoke 友好? 此处提供了一些有关如何修改与 P/Invoke 一起使用的本机程序的提示。但在我编写本机程序之前,我应该注意哪些事项…
对于采用 var args 的函数,正确的 PInvoke 签名是什么?
有一个本机函数: int sqlite3_config(int, ...); 我想 PInvoke 到此函数。目前,我有这样的声明: [DllImport("sqlite3", EntryPoint = "sqlite3_con…
如何在.NET中控制Windows应用程序焦点
我使用 pinvoke“user32.dll”将我的应用程序发送到后面(所有其他应用程序后面),以便它位于桌面上,反之亦然。目前它只是切换 - 后/前。有没有办法…
将 C# 应用程序的引用添加到未使用 /clr 编译的 DLL?
我正在使用 Visual Studio 2008 构建一个包含两个项目的解决方案:一个 C# 控制台应用程序和一个 C++ DLL。我希望应用程序使用 P/Invoke 从 dll 调用…
如何找到用户刚刚启动的可执行文件?
我正在开发一个测试框架,该框架需要能够记录用户的活动,然后重播它们。我可以使用 P/Invoke 周围的 ManagedWinAPI 包装器(在 C# 中工作)来记录鼠…
C#:编组“指向 int 数组的指针”来自 SendMessage() lParam
我正在尝试使用从 NativeWindow 继承的类从托管 COM 服务器子类化非托管状态栏窗口,但在尝试了解如何正确编组 lParam 的内容时遇到了困难。 http://m…
“尝试加载格式不正确的程序”即使平台相同
我正在从 64 位系统上的 32 位非托管 DLL 调用函数。我得到的是: BadImageFormatException:尝试加载格式不正确的程序。 (HRESULT 异常:0x8007000B…
托管结构和非托管结构的大小不同
我正在通过 P/Invoke 使用非托管库,它使用三个结构(尽管它们都具有相同的基本布局,所以我只发布一个): struct Agraph_t { int tag:4; int kind:4…
C# PInvoke 输出字符串声明
在 C# PInvoke 中,如何传递字符串缓冲区以便 C DLL 填充它并返回? PInvoke 声明是什么? C 函数声明是 int GetData(char* data, int buflength); 在…
C# P/Invoke:包含函数指针的编组结构
抱歉,接下来的介绍很冗长。我需要比我更了解 P/Invoke 内部结构的人的见解。 以下是我如何将包含函数指针的结构从 C 编组到 C#。我想知道这是否是最…
隐藏进程的所有窗口(例如 Internet Explorer)
我正在使用 WatiN 在 Internet Explorer 中编写在用户计算机后台运行的操作脚本。 (我知道……哈克)。我可以通过 WatiN 使 Internet Explorer 窗口…
deviceiocontrol 和磁盘大小问题
我正在使用 C# 和 pinvoke 来读取/写入原始 SD 卡。我需要使用deviceiocontrol获取总容量: [StructLayout(LayoutKind.Sequential)] public struct DI…
C# 中非托管代码的函数指针
我有一个 dll,它接受一个结构,该结构包含指向函数的指针以执行回调。 如何获取应用程序函数的 IntPtr 来构建结构? [StructLayout(LayoutKind.Seque…
将偏移量添加到 IntPtr
我正在寻找一种在 C# 或 .NET 中执行指针操作的方法。 我想做一些非常简单的事情 有一个指针 IntPtr 我想获得指向前面 2 个字节的 IntPtr 对象。 我读…