如何为第三方定义的 COM 接口注册代理/存根?
有另一家公司提供使用 IAnotherCompanyInterface 的产品。我们想要发送一个实现 IAnotherCompanyInterface 的 COM 对象。该接口与自动化不兼容,因此…
如何防止 CompileAssemblyFromSource 泄漏内存?
我有一些 C# 代码,它使用 CSharpCodeProvider.CompileAssemblyFromSource 在内存中创建程序集。程序集被垃圾收集后,我的应用程序使用的内存比创建程…
C# 中的 Char * 编组
我在 Visual C++ DLL 中有这个函数, char * __stdcall GetMessage(int id) { char buffer[250]; . . . strcpy(buffer, entry); // entry is a char *…
double* 和 double** 是 blittable 类型吗? C#
我有一个关于将 C++ 数组编组到 C# 的问题。 double* 会自动转换为 double[] 吗? 我知道 double 是 blittable 类型,因此 C++ 中的 double 与 C# 中…
从 C++ 编组结构数组到 C#?
在我的 C# 代码中,我尝试从旧版 C++ DLL 中获取结构数组(我无法更改该代码)。 在该 C++ 代码中,结构的定义如下: struct MyStruct { char* id; ch…
C# - Marshal.Copy() 导致缓冲区损坏
我收到一个 IntPtr 和一个 int 指定它指向的字节数。数据可以包含任何字符,包括 null、EOL 等。尝试以下操作时,缓冲区已损坏: //buffer is the Int…
C#:将字符串数组传递给 C++ DLL
我正在尝试将数组中的一些字符串传递给我的 C++ DLL。 C++ DLL 的函数是: extern "C" _declspec(dllexport) void printnames(char** ppNames, int iN…
C#:调用 C++带有 char** 参数的 DLL
我想从我的 C# 代码中调用这个 C++ 函数: void GetArrayOfNames(char** names, int nbOfNames); 要在 C++ 中调用它,我只需定义一个 char* 数组: ch…
如何在 VC 中实现编组ATL COM 服务器?
在实现我自己的 IFilter 时,我发现很可能一些消费者需要从中进行编组。也就是说,它们是我的对象的 QueryInterface() 接口。 无法使用 MIDL 中的代理…
使用 LayoutKind.Explicit 进行布尔编组,这是否已损坏或按设计失败?
首先,布尔类型据说有一个四字节值的默认编组类型。因此,以下代码有效: struct A { public bool bValue1; public int iValue2; } struct B { public…
要调用需要 IntPtr 的方法,使用 /unsafe 还是 Marshal.AllocHGlobal 更好?
我有一个类,它将在应用程序的整个持续时间内保留一些实例。这些对象都需要每秒多次调用一个 dll 方法,该方法从现有 float[] 缓冲区附加数据,并将完…
具有从 C# 到非托管驱动程序的嵌入式指针的编组结构
我正在尝试使用 P/Invoked DeviceIoControl() 调用将 C# (.NET Compact Framework 3.5) 与 Windows CE 6 R2 流驱动程序连接起来。对于其中一个 IOCTL …
将 VB6 代码编组并转换为 .NET
我在将一些代码从 VB6 转换为 VB.NET 时遇到问题(我对 .NET 没有太多经验)。当我在.NET 中运行“Select 函数(来自 WS2_32.dll 库)”时,使用与 VB…