P/Invoke 获取指向字符数组的指针
我有一个 DLL,需要 P/Invoke 以下方法: 双字节 Foo( 整数a, 整数*b, 字符*c ); 根据文档,参数“c”是一个输出参数,必须是大小为 16 的字符数…
我应该如何从 C# 调用这个本机 dll 函数?
这是本机 (Delphi 7) 函数: function Foo(const PAnsiChar input) : PAnsiChar; stdcall; export; var s : string; begin s := SomeInternalMethod(i…
使用隐藏标题栏最小化/恢复使 Windows 窗体窗口变大
在使用 SetWindowLongPtr 的 PInvoke 从可调节窗口中删除标题 (WS_CAPTION) 后,我在 Windows 窗体中遇到了此问题。此后,每当窗口最小化或最大化,然…
使用 P/Invoke 通过引用传递的参数返回垃圾
我在 Linux 上使用 Mono/C# 并具有以下 C# 代码: [DllImport("libaiousb")] extern static ResultCode QueryDeviceInfo(uint deviceIndex, ref uint …
C# Marshal / Pinvoke CBitmap?
我不知道如何将 C++ CBitmap 封送到 C# 位图或图像类。 我的导入如下所示: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] 公共静态 extern I…
在循环中对物理设备路径调用 CreateFile
我有一些 C# 代码,每次通过 pInvoke 循环(即 \.\PhysicalDrive1,然后 \.\PhysicalDrive2,...)在不同的物理设备路径上调用 CreateFile,然后使用…
无法使用 pinvoke 将 WM_CLOSE 发送到 Windows 资源管理器窗口
我有一个 C# 应用程序,它使用 SendMessage pinvoke 方法向应用程序外部的各个窗口发送“关闭窗口”消息 (WM_CLOSE / 16)。这非常有效,除非相关窗口…
C#:将字符串数组传递给 C++ DLL
我正在尝试将数组中的一些字符串传递给我的 C++ DLL。 C++ DLL 的函数是: extern "C" _declspec(dllexport) void printnames(char** ppNames, int iN…
C# - 从 SetWindowText 获取事件
我们正在为现有的 VB6 应用程序编写一个插件(通过 COM 互操作),并且我们需要一些他们不支持的功能。如果我们能够以某种方式接收到窗口上特定控件的…
委托实例和方法指针有什么区别?
我认为委托实例可以与函数实例互换。 采取以下代码: delegate int AddDelegate(int a, int b); AddDelegate DelegateInstance; public void DoStuff(…
从 P/Invoke 捕获 DllNotFoundException
找到带有解决方案的帖子:如何处理DllImport 失败? 我正在编写一个应用程序,用于检查操作系统版本以根据主机使用的是 Vista 系列还是 NT 系列版本的…
使用 LayoutKind.Explicit 进行布尔编组,这是否已损坏或按设计失败?
首先,布尔类型据说有一个四字节值的默认编组类型。因此,以下代码有效: struct A { public bool bValue1; public int iValue2; } struct B { public…
具有从 C# 到非托管驱动程序的嵌入式指针的编组结构
我正在尝试使用 P/Invoked DeviceIoControl() 调用将 C# (.NET Compact Framework 3.5) 与 Windows CE 6 R2 流驱动程序连接起来。对于其中一个 IOCTL …