PInvokeStackImbalance异常的解决方案(从C#调用非托管C++ dll)-VS2010
我花了一天的时间来解决这个问题,我不希望其他人也这样做。因此,问题和解决方案如下: 问题:尝试在 C# 代码中使用 C++ dll 中的方法时,出现 PInvo…
DbgHelp.dll :从 C# 调用 SymGetModuleInfo64
我从 C# 代码调用 SymGetModuleInfo64 的行为非常奇怪。我总是使用 Marshal.GetLastWin32Error() 得到 ERROR_INVALID_PARAMETER (87)。我已经阅读了很…
创建一个基本的 C++ C# 中 p/invoke 的 .dll
我是一名 C# 程序员,不幸的是,由于年龄和经验的限制,我在学习中没有机会经历 C++ 编程时代 - 其中很多内容对我来说是神秘而新鲜的。并不是在这里争…
如何确定另一个应用程序的窗口是否可见?
我最近获得了 WinX DVD Ripper Platinum 的许可证,但令我恼火的是,当它完成 DVD 翻录后,它并没有告诉我这一点。没有弹出窗口,没有系统“蜂鸣声”…
从 C# 调用接受调用者分配的结构数组的 C 函数
我有以下 C 结构 struct XYZ { void *a; char fn[MAX_FN]; unsigned long l; unsigned long o; }; 我想从 C# 调用以下函数: extern "C" int func(int…
在 C# 中编组 char**
我正在与采用 char** (即指向字符串的指针)的代码进行交互: int DoSomething(Whatever* handle, char** error); 基本上,它需要一个状态句柄,如果…
是否有适用于 .NET 的完整 user32.dll 包装库?
我目前正在通过 VB.NET 与 user32.dll 进行大量互操作。 由于 user32.dll 不是在 .NET 级别而是在本机级别,因此我需要使用 Declare 语句来声明函数。…
将带有嵌入字符串的结构传递给 C dll 时,C# P/Invoke 不起作用
我有一个旧的 C dll,需要用 C# 代码包装。我使用 P/Invoke 签名 takeit 获得以下结构定义: [StructLayout(LayoutKind.Sequential)] internal struct…
为什么 DeviceIoControl 从 C# 中抛出错误 21(设备未就绪),而 C 中的等效项工作正常?
我正在尝试使用 C# 向 GPS 中间驱动程序服务发送 IOCTL_SERVICE_REFRESH 命令,如下所示: handle = CreateFile("GPD0:", GENERIC_READ, FILE_SHARE_R…
从 Windows C 函数返回字符串
我对 C 和 C++ 中的纯 Windows API 级函数完全是新手,最近一直在尝试 .NET 互操作性。我已经构建了一个简单的库,它已成功地将数值(int/float 等)…
在 .NET Platform Invoke 中使用不安全的 struct * 作为不透明类型而不是 IntPtr 是否有效?
.NET Platform Invoke 提倡将指针类型声明为 IntPtr。例如,下面的 [DllImport("mylib")] static extern IntPtr get_foo(); [DllImport("mylib")] sta…
互操作 C#/C 问题:AccessViolationException
并感谢您提供的任何帮助的建议。 我在 C 中有这个简单的函数: __declspec(dllexport) Point* createPoint (int x, int y) { Point *p; p = (Point*) …
P/调用接受指向字符串对的指针的本机函数
我有一个 Visual Studio 2008 C# .NET 2.0CF 应用程序,我需要在其中 P/Invoke 具有以下签名的本机函数: /// @brief count - number of pairs /// @b…