如何封送可变大小的结构数组? C# 和 C++ 互操作帮助
我有以下 C++ 结构体 struct InnerStruct { int A; int B; }; struct OuterStruct { int numberStructs; InnerStruct* innerStructs; }; 和 C++ 函数…
将大量代码放入包装 PInvoke 内容的属性的 get 函数中是一种不好的做法吗?
我知道这是一个令人困惑的标题。 让我解释。 我必须编组结构数组,然后将其转换为类数组(旧版兼容性)。 例如 public class InnerClass {} public cl…
在 C#/.NET 中访问超出 MAX_PATH 的文件
背景 我需要编写一个最高使用 .NET 2.0 版本的工具(出于政治、商业和保密/信任原因,该客户不可以选择使用现成的工具)来迁移文件通过网络连接到另一…
从 RichTextBox 中删除(或更新)图像
我有一个与管理 RichTextBox 中的 OLE 对象相关的问题。 到目前为止我发现了很多信息,但并不完全是我需要的,所以我将首先做一个快速介绍(我也希望…
user32.dll FlashWindow 的托管替代方案
在一个闪烁标题栏和窗口相应任务栏按钮的.Net应用程序中,为了吸引用户的注意力,使用了类似这样的P/Invoke代码: [DllImport("user32.dll")] private…
需要一种更改远程用户密码的方法 - NetUserChangePassword 失败并显示 2245
我正在尝试调用 NetUserChangePassword 来更改远程计算机上的密码。 我可以在登录机器时更改密码,但无法通过代码执行此操作。 返回值为 2245,相当于…
为什么我对 SendInput 的调用不起作用
我正在使用 SendInput 将一些键盘命令发送到对话框。 当我调用 SendInput 时,它已经是活动的前台窗口。 我首先发送“Return”,然后发送一堆其他内容…
如何将可为 null 的类型传递给 P/调用的函数
我有一些 p/invoked 函数(但我现在正在重写我的代码,所以我正在整理),我想知道如何使用/传递可为空类型作为参数之一。 使用 int 类型不是问题,但…
使用 IOCTL_DVD_* 控制代码从 C# 调用 DeviceIoControl
我正在尝试从 C# 调用 DeviceIoControl 来获取 IOCTL_DVD_* 控制代码。 阅读了大量信息并尝试了一些示例后,我并没有取得太大进展。 我最终想要做的是…
如何从非托管 C++ 调用托管 .NET 代码 Windows 中的代码,反之亦然?
我有一个使用 VC 6.0 开发的纯 C++ 应用程序。 我希望这个应用程序能够使用用 C# 开发的库。 如何从本机可执行文件调用 C# 库中的方法? 我不想将非托…
如何在 VB.NET 中检查目录是否可以重命名?
我的想法是使用 kernel32 中的 CreateFile 并检查共享冲突。 我相信这会起作用,因为我在从 CMD 发出重命名命令时使用 Process Monitor 观察了文件系…