在 C# 中使用托管结构的 sizeof
我正在尝试将 C++ 代码移植到 C#。该代码旨在使用RegisterClassEx 注册窗口类。 C++ 代码有一个对象 WNDCLASSEX wcex。对象 wcex 有一个属性 wcex.cbS…
一段时间后 P/Invoke 速度变慢
我正在使用一个 C# 库,它的作用类似于非托管库的包装器。该库依赖于 P/Invoke。 我遇到了一些奇怪的事情:在我的 WinForms 应用程序中,我有一个按钮…
混合模式项目的内存泄漏检测:托管、非托管和本机
我有一个 Visual Studio 2010 解决方案,其中包含 C#(托管)、C++/CLI(非托管)和纯 C++(本机)项目。我想在所有 3 个项目中或至少在本机代码周围…
在 C# 中复制原始像素数据
我正在尝试将位图的像素复制到 DirectX 纹理中。从两者获取 IntPtr 都很简单,但如何有效地复制像素数据? var data = FBitmap.LockBits(..) var rect…
单元测试:如何打破本地对象依赖?
我有如下代码: class B; class A { A() { } bool MethodA() { B *pB = new B(); bool bRet = pB->SomeFunction(); // remaining logic; return bRet;…
C++/CLI:在 .cpp 中定义所有内容,还是在 .h 或 .cpp 中单独定义?
抛开所有美学考虑……哪种选择更好?我主要关心的是构建时间、保持代码的可读性和易于维护,当然还有它的编译性。 我见过大多数书籍都在 .cpp 文件中…
读取数组在非托管 c++
我有一个托管 C++ 类,其方法的构造函数签名为: tools_package_net::PackageInfo::PackageInfo(array^ bytes) 在构造函数内,我希望使用签名调用非托…
C# 为 MarshalAs 属性类定义自定义 UnmanagedType
是否可以为 MarshalAs 属性类定义自定义 UnmanagedType? 具体来说,我想将 long int unix 时间转换为 DateTime 类型。像这样的事情: [MarshalAs(Unm…
从 .NET 代码中销毁非托管对象
我编写了一个 C++ 库,通过 C++/CLI 包装器向我的 VB.NET 应用程序公开该库。 我担心通过包装器传送到 VB.NET 应用程序的对象。为了使用库中的类,我…
使用 P-Invoke 将字符串数组从托管 C# 传递到非托管函数
是否可以使用 P-Invoke 将字符串数组从托管 C# 传递到非托管函数? 这工作正常: [DllImport("LibraryName.dll")] private static extern void Functi…