使用“ref this”传递结构是否安全?到本机代码
我目前正在将 Steamworks SDK 集成到我的游戏中,并且有一些方法需要将结构体作为指针传递,例如: // Public interface method declared by the libr…
如何将本机 DLL 包含到 WiX 安装程序的托管 DLL/自定义操作中?
我正在制作一个 WiX/MSI 安装程序,它使用用 C# 编写的自定义操作 DLL。在该自定义操作中,我正在调用本机/非托管 DLL。下面是一个示例: [DllImport(…
将 C# 结构编组为 C++ dll - 不同的值
我有一个用 C++ 编写的 DLL,我试图调用一个需要来自我的 C# 项目的结构的函数。 这是它的声明 int _stdcall InitialiseMotors(int i_nBoard, Array_O…
C++ 没有返回值使用 C# 的 DLL
使用控制台应用程序,我使用 c++ com dll 来调用函数。 我已添加注册的 DLL 作为项目的引用,然后实例化该对象并调用该函数。 (我应该注意,我没有像…
如何从 PInvoke 本机回调返回 StringBuilder 或其他字符串缓冲区
我想要一种干净的方法来增加本机代码填充所需的 StringBuilder() 的大小,下面的回调方法看起来很干净,但不知何故我们得到了缓冲区的副本而不是实际…
逐步完成“托管到本机的转换”在视觉工作室中?
在尝试回答这个问题时,我决定需要在调试器视图中手动逐步完成编组过程。 不幸的是,Visual Studio 似乎直接跳过了所有这些有趣的代码。以下是对 GetP…
MarshalAs(UnmanagedType.ByValArray, SizeConst 大小限制
谁知道如果 MarshalAs(UnmanagedType.ByValArray, SizeConst SizeCount 当封送处理有大小限制时。 我发现如果 Size 大则 100000,则编组函数调用不起…
如何使用 PInvoke 编组为 I8 类型?
我有一个 UInt32 值,想使用 InterOpServices 传递给外部 dll。 非托管代码的原型是: [DllImport("svr.dll")] public static extern UInt32 CreateTa…
p/invoke GetSystemDEPPolicy 函数的 .NET 签名
我找不到 .NET 使用此函数 (GetSystemDEPPolicy) 的任何示例签名。 http://msdn.microsoft。 com/en-us/library/windows/desktop/bb736298(v=vs.85).a…
C#虚拟键盘p /调用shift不会“释放”钥匙
我当前的代码是: [DllImport("user32.dll", SetLastError = true)] static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtr…
导入的本机函数在 .NET 4.0 中不起作用
我正在将项目从 .net 3.5 迁移到 .net 4.0 并遇到以下问题。 有 2 个 DllImport 语句: _ Public Sub GenerateHardwareID( _ ByVal Buffer As Byte(),…
从 ASP.NET Web 服务调用 C DLL
编辑问题 嗨,这是这个项目的总工作流程 ,我们有一个用 cobol 编写的应用程序,我们可以仅使用 C DLL 与该应用程序进行通信,我们必须在 C DLL 中调…
是否有跨平台(x86 和 x64)PInvoke 和 Windows 数据类型的明确指南?
我正在验证一些代码的 x64 兼容性。以前我使用过 PInvoke.net,但我发现了一些 x64 方面的可疑声明。现在,我: 查找 API 参考,例如 MapViewOfFile …