malloc 和 Marshal.AllocHGlobal 之间有什么区别?
我用 C# 编写了一个模块,导出一些要在 C 中使用的函数。 我需要为一些要在 C 之间传递的结构分配一些内存。 C#。 我在 CI 中使用 malloc 分配,在 C#…
在 .NET 的 *.a 库中使用 C 函数
我有一个 API,它由头文件 (.h) 和库文件 (.a) 组成。 我从未接触过 C,我需要从 C# 访问此 API 并与其函数进行交互。 关于此主题的大多数 问题 都说…
如何确定 SHGetImageList 中使用的桌面和网络图标索引?
我能够使用下面包含的 API 成功提取文件系统驱动器、文件夹和文件的图标。有关 DLL 导入等的其他信息(帮助我走到这一步)可以找到 此处。通过调用方…
无法加载 DLL(找不到模块 HRESULT:0x8007007E)
我有一个 dll 库,其中包含我需要在 .NET 4.0 应用程序中使用的非托管 C++ API 代码。但我尝试加载 dll 的每种方法都会出现错误: 无法加载 DLL“MyOw…
Application.Exit需要调用两次
我有一个 Main 方法,它创建一个名为 SysTrayApp 的消息循环: void Main() { Application.Run(new SysTrayApp()); } 我的 SysTrayApp 类将 ContextMe…
实现 Win32 消息循环并使用 P/Invoke 创建 Window 对象
我的主要目标是纯粹使用能够处理的 P/Invoke 调用来实现正确的消息循环USB HID 事件。当然,它的功能应该与以下在 Windows 窗体 中运行良好的代码相同…
在 C# 中创建一个 STL std::set 并封送至 c++
实现这一目标的最佳方法是什么?我有一个文件名列表,是在 C# Windows 服务中生成的。我最终需要将它们放入 STL 集中,并将其推送到文件映射。我假设…
发送信件“i”使用发送键
我用 c# Windows 窗体制作了一个屏幕键盘。我使用 Sendkeys.Send() 函数来发送击键。除了字母 i 之外的所有字母都可以正常工作。当我在 Microsoft Wor…
C# .Net 中使用的 Borland Builder 2006 DLL - System.StackOverflowException
我有一个旧的 DLL (Borland Builder 2006 C++),我想在 .Net C# Visual Studio 2010 中使用它。当我尝试在 VS 中导入函数时,我总是从 Visual Studio …
Windows 7 x64 上的 GetAsyncKeyState
我正在尝试在 windows7 x64 上使用 C# 的 GetAsyncKeyState(i) 来获取按下的按键。它在 x86 上完美运行。这是我的代码: [DllImport("user32.dll")] p…
C# 的托管物理引擎与非托管物理引擎
有人尝试过 BEPU 物理引擎吗? http://bepuphysicals.codeplex.com/ 这是一个用 C# 编写的完全托管的物理引擎......我知道它主要用于 XNA(XBOX 和 WP…
如何导出 CIL DLL 中的方法以便本机程序可以调用它?
我审查了 ECMA 335,只找到了对 .export 关键字的引用,该关键字看起来很有前途,但文档很少。我在 StackOverflow 上发现了关于在 C# 中执行此操作的…
C# 应用程序中的非托管调用堆栈
我在编写的非托管 dll 中遇到访问冲突错误,但是当我尝试在 ac# 应用程序中调试它时,它只会在 Visual Studio 的调试窗口中获取调用堆栈的最后一帧。 …
[ComImport] 是否被视为 P/Invoke?
什么是平台调用 (P/Invoke)? 执行 P/Invoke 意味着什么?是调用外部dll吗?例如: [DllImport("coredll.dll", SetLastError=true)] private static e…