我正在尝试使用RegenerateUserEnvironment方法,这样我就可以在不重新启动实例的情况下刷新环境变量。 但是,它最终会出现访问冲突错误。 我不确定,但对我来说,更新自己的进程 memory 不应该导致错误。 我尝试过的事情: 传递当前进程的实际令牌。 没有机会。 使用所有可能的权限 ...
我正在尝试使用RegenerateUserEnvironment方法,这样我就可以在不重新启动实例的情况下刷新环境变量。 但是,它最终会出现访问冲突错误。 我不确定,但对我来说,更新自己的进程 memory 不应该导致错误。 我尝试过的事情: 传递当前进程的实际令牌。 没有机会。 使用所有可能的权限 ...
我为本机库生成了绑定,但意识到导入在 32 位和 64 位之间是不同的。 问题: 不仅入口点不同,调用约定也不同: 32 位导入: 64 位导入: 由于这些是编译时常量,因此无法使用if (64bit) then... else...这些导入。 我一直在想的是: 使用序号而不是装饰名作为入口点 ...
尝试从指针读取结构时, Unsafe类中的所有方法都不起作用。 在调试器中都显示Unable to read memory : 是否可以像Marshal.PtrToStructure那样读取具有Unsafe类的结构? 关于: pSymInfo是一个IntPtr 。 SYMBOL_INFO_V ...
我有这个 c++ header:// BRepPrimAPI_MakeSphere.hxx file #include <Standard.hxx> #include <Standard_DefineAlloc.hxx> #include <BRepPrim_Spher ...
无法弄清楚CreateFilePrivate有什么问题。 从 PowerShell 调用,带有: 对@Dai 指出的问题进行了修复。 ...
我在 p-Invoking 一些 API 函数方面取得了一些成功,但现在一些看似简单的事情让我感到困惑。 此代码有效: Output 和测试: 但是这段代码不会编译: 抛出以下错误: 关注第一个错误: Method must have a return type ,我的互联网搜索没有帮助。 构造函 ...
在一个模块中,我创建了一个字典并转换为IntPtr (用于 PInvoke 调用)。 在另一个模块中,我从IntPtr获取字典 object ,它是通用的object 。 如何将其转换回原始类型,以便可以像这样使用它: ...
我无法通过 pinvoke 将结构的形状传递给 NVML 库 function。 该结构包含一个固定大小的数组和一些 unsigned long long 我没有遇到任何编译器错误,但返回的数据似乎已损坏。 (一个 int isRunning 应该只是一个零或一个 1,我得到一个 30,一个 3. ...
我有一个 C# (NET 6) 项目,我尝试调用 fortran 子例程并传递一个struct 。 我在这里做了简化版: c#: 和 FortranLib.dll 代码: 使用MaxSize = 45有效,但 46 无效。从 46 及以上我得到“堆栈溢出”异常/崩溃。 At 45 the siz ...
我 p/invoking InternetSecurityManager.GetZoneMappings()以从我的 Intranet 区域获取安全站点列表,并且返回的IEnumString object 上的Next()方法总是报告获取了零个站点,即使有。 这是我的代码,基于这个答案: 它运行并且 ...
如果我的术语不正确,请原谅我是 P/Invoke & marshalling 的新手。 我正在尝试从ntdll.dll执行NtQuerySystemInformation方法。 P/Invoke 网站建议 [ 链接][DllImport("ntdll.dll")] public stati ...
我尝试了几种不同的方法,但似乎无法让它完全正常工作。 这是我现在遇到的例外。 我无法弄清楚如何将枚举引用传递给SHQueryUserNotificationState以便它指向QUERY_USER_NOTIFICATION_STATE的特定成员供参考 - https://docs.microsof ...
我正在尝试使用 P/Invoke 在 C# 中使用Win32 API 调用创建的进程的PEB中读取ImageBaseAddress的值。 然而,对ReadProcessMemory的调用返回 false,表明它失败了。 使用 Visual Studio 调试器进行检查,我看到传递给 function ...
我有一个使用本机 DLL 的.Net 4.6 C# GUI 应用程序。 我想在本机代码中处理数据并将本机端分配的 memory 返回给 C#。 我已经阅读了有关 StackOverflow 的各种问题以及来自 web 的链接,但我想确保有一些缺失的部分,并可能将所有相关的互操作答案收集在一个地方。 ...
假设一个 C 库(我们称之为mylib.so )公开以下内容:typedef void (*EventCallback)(int); // there would be an additional declspec macro'd in here // macro'd in here on Wi ...
如何使用 C# 的 Dllimport 从 C 库中获取字符串数组 我已经尝试 StringBuilder[] 和许多 MarshalAsAttributes 来接收 ClassNames 但仍然无法正常工作并导致 memory 违规我对这个 C 方法的解释如下。 我的声明是 我有通过类数=16, ...
根据文档,当尝试在我的托管代码中调用非托管代码时,它应该具有与非托管代码完全相同的 function 签名。 我尝试放入我知道不应该工作的不同 function 签名。 原来的: 适配(调用 DllImport 后): 没有抛出异常。 即使我更改了参数(放置浮点数或其他用户定义的类型),它仍然没有抛 ...
在下面的代码中调用GetSystemInfo后,所有SI字段都为 0,这就是我要在这里解决的问题。 这与几个示例的代码大致相同,可以在GetSystemInfo上通过快速网络搜索找到,所以我认为代码本身没有错误: 我正在单元测试的调试会话中测试此代码。 操作系统是 Windows 10,VS ...
我有一个带有导出函数的 C++ DLL: 该函数分配缓冲区数组并为测试赋值 struct DataBufferIn 是这样的 以下是我的代码,我想在 c# 中编组这个结构,但我得到一个异常(An unhandled exception of type 'System.Runtime.I ...
我正在使用RegisterShellHookWindow来检测 Windows 上的用户交互。 在我的WndProc中,我收到消息代码: 0xC029 。 我查看了 WinUser.h 但什么也没有。 这个消息代码是什么意思? 帮助 ...