PInvoke 结构/函数中的奇怪错误
我目前正在为 C++ API 编写 C# 包装器,但特定的结构和依赖于该结构的函数在调试时给出了非常奇怪的错误。 C++ 结构: typedef struct { unsigned __i…
外部定义的 C 函数返回值不正确,入口点可能与此有关?
我在 xcode 中编译了一个静态库,它只包含一个 .c 源文件: int Get10() { return 10; } 这就是它包含在 .cs 源文件中的方式: [DllImport ("__Intern…
C/C++在 MonoTouch 中调用时返回 NaN 的函数
我有两个源文件: File.h: class Numbers { public: int Get10(); int Get192(); float GetFloat(); }; File.cpp: int Numbers::Get10() { return 1…
使用P/invoke来提高性能,可行还是只是一厢情愿?
这是一个我应该早点问的问题,但我并没有急于享受 MonoTouch 中 p/invoke 类型的东西。 基本上,我遇到了与大量浮点运算相关的性能问题,特别是涉及最…
.NET 可移植性警告:CA1901 PInvoke 声明应该是可移植的
当我将以下行添加到代码中 [DllImport("user32.dll")] static extern void keybd_event(byte key, byte scan, int flags, int extraInfo); 并根据 Mic…
C# 使用 SendMessage,WM_COPYDATA 问题
我花了几天(或更长时间)试图让它发挥作用。 手头的应用程序是 FTPRush,我知道有一个名为 rush_cmdline.exe 的命令行应用程序,它使用 SendMessage …
处理来自 C++ 的用户定义的异常DLL - .NET PInvoke/编组
我正在开发 WPF 应用程序,该应用程序使用 PInvoke 在内部调用 C/C++ DLL。在 DLL 的调试模式下,每当发生错误时,函数都会抛出一个异常,该异常基本…
如何调用非托管 C++ C# 中以 std::vector<>::iterator 作为参数的函数?
在非托管 C++ 中,我有一个尝试从 C# 调用的函数。这个 C++ 函数如下: typedef std::vector Points; typedef std::back_insert_iterator OutputItera…
C# 中的 RtlCompressBuffer API
我正在尝试在 C# 项目中使用 RtlGetCompressionWorkSpaceSize 和 RtlCompressBuffer 函数。 这是我到目前为止所得到的: class Program { const uint …
TranslateAccelerator 成功,但 WM_COMMAND 消息未显示
我正在围绕 Win32 钩子编写一个 .NET 包装器,它缓冲 WM_CHAR 消息并允许订阅诸如按键、释放键和加速键击键等事件。除了我对 TranslateAccelerator 的…
C# P/Invoke:Varargs 委托回调
我只是想进行一些托管/非托管互操作。为了获得扩展的错误信息,我决定注册 dll 提供的日志回调: [UnmanagedFunctionPointer(CallingConvention.Cdecl…
Windows 窗体中非托管回调的问题。访问违规
我在获取第三方 .dll 时遇到问题,该第三方 .dll 使用非托管回调在 ac# 表单项目中工作。最初,程序会在第一次调用回调后崩溃。但是,此处的响应帮助…
为什么 ITaskScheduler 在创建名称中包含点的任务时会抛出异常?
我正在尝试使用 ITaskScheduler 接口创建计划任务,使用 PInvoke.Net。 我调用了传入任务名称的 Activate 方法。它似乎适用于某些任务名称,而不适用…
向窗口发送 WM_KEYUP 消息会引发 OverflowException
我正在尝试实现一个程序,该程序将相同的消息发送到一个窗口,如果连续按下某个键,该窗口就会发送该消息。 这是应用程序的代码的一部分(整个 Form1.…
64 位上的 DllImport PathCanonicalize 会导致内存损坏
我试图在 64 位 .NET 程序集上使用 DllImport (PInvoke) 来使用 PathCanonicalize 函数,它会导致内存损坏,从而导致各种不良行为(崩溃、异常异常等…