Marshal.ThrowExceptionForHR 抛出 NotSupportedException
我使用以下模式将 win32 异常转换为 .NET 异常。 var result = A_KERNEL32_PINVOKE_CALL(); if (result == 0) { Marshal.ThrowExceptionForHR(Marshal…
如何将其转换为 C#(编组)
我有这些声明 (DLL) 并尝试将其转换为 C#,以便我可以从 DLL 调用函数。 struct1 到 struct3 相同 typedef struct1 { int num; char chars[25]; short…
.net 枚举是 blittable 类型吗? (编组)
显然有一个 blittable 类型列表,到目前为止我还没有看到专门的枚举。它们一般来说是可以位块传送的吗?或者它是否取决于它们是否使用 blittable 基类…
C++ Cli [MarshalAs]属性什么时候生效?
如果我以这种方式在 C++ CLI 中声明一个值结构: [StructLayout(LayoutKind::Sequential, CharSet = CharSet::Ansi, Pack = 2)] value struct TEST { …
如何优雅地卸载正在运行线程的子 AppDomain
我有一个服务加载一个子 AppDomain,然后启动一个在其中运行的线程。它需要一个 AppDomain,因为它动态生成并加载一些代码,并且我需要能够在不终止整…
C# 编组期间出现 FatalExecutionEngineError
当尝试将许多 DBase IV 文件中的 memofields 中的 C++ 结构读取到 C# (.Net 4) 中,然后将它们插入到 MSSQL 2008 中时,我遇到了问题。数据从 DBase …
具有 ushort 灰度值的锁定位
我想从给定的 16 位灰度值创建位图。到目前为止,我有这段代码: var value = CamData.ToArray(); var b = new Bitmap(160, 112, PixelFormat.Format2…
从工作线程调用(编组)单元线程 COM 接口的 ATL 示例
我正在寻找一个代码示例,该示例说明了如何在 ATL COM Server DLL 中进行跨线程 COM 调用。知道一个吗? 更多详细信息: 我的组件是一个 IE 浏览器帮…
C++ 的 C# 等效项“有符号长整型”
我将 C++ dll 导入到 C# 项目中,在 x64 计算机上,在调试模式下,PInvoke 抱怨托管签名与非托管目标签名不匹配。 C++: void _Foo(signed long int x…
从 C# 调用 DLL 时,为什么小结构会导致函数参数不一致?
我正在编写 c# / c++ 应用程序,当我尝试传递仅包含两个浮点数的结构时遇到了问题。例如: [DllImport("Resources\\CppInterface", EntryPoint = "?Re…
从 c++ 接收 char*进入c#,然后再次将其传回
我遇到了第三方 c++ dll 的内存泄漏问题。对于某些调用,dll 为字符串分配内存,将其作为 char* 传递出去,然后期望接收回该指针,以便可以取消分配内…
如何从 C# 调用这个 Delphi 函数?
我在从 C# 调用 delphi 函数时遇到问题(尝试读取或写入受保护的内存),并且想知道调用该方法的正确方法应该是什么。 Delphi 函数签名如下: procedu…