您可以使用 .net 3.5 Action 或 Func 作为编组非托管委托吗?
阅读动态调用.net 中的非托管 dll 我一直在尝试根据自己的喜好修改代码。我创建了一个实现 idisposable 的类来包装加载调用并在需要时释放它们。但是…
在 C# 中使用 in_addr
我正在尝试使用 P/Invoke 与本机 DLL 进行交互,但它需要 in_addr 结构参数。我不断看到它的许多不同类型的定义,但哪种定义最好? 另外,如何将 C# I…
如何通过 DLL 公开 erl_interface(Erlang 的 C 库)?
过去三天我一直在不间断地研究 Erlang 的完全托管界面。此时,我决定必须有一种更简单的方法。我已经有 3000 多行了,但它甚至还没有处于可编译状态。…
如何解锁ConnectNamedPipe和ReadFile? [C#]
我有一个类(NamedPipeManager),它有一个线程(PipeThread),它等待使用(ConnectNamedPipe)的NamedPipe连接,然后读取(ReadFile) - 这些是阻塞…
将此 C 签名转换为 C# 以进行 P/Invoke
我有以下 C 函数: int w_ei_connect_init(ei_cnode* ec, const char* this_node_name, const char *cookie, short creation); ei_cnode 看起来像这样…
通过引用传递结构导致 AccessViolationException
我的又一个 P/Invoke 问题!我有这个 C 函数: int _ei_x_new(ei_x_buff* x); 本质上,它初始化一个新的缓冲区结构。在 C# 中,我有这样的: [DllImpo…
在终端服务器上,服务如何在用户会话中启动进程?
从运行在终端服务器(在全局空间)上的 Windows 服务,我们希望能够启动一个在特定用户的终端服务器会话中运行 Windows 应用程序的进程。 如何去做这…
“忽略” 在 Mono 上运行时的 P/Invoke
我有一个 WinForms 应用程序,我想在某个时候在 Mono 上运行。 然而,它正在对 user32.dll 使用一些 P/Invoke,这会导致明显的问题。 然而,这不是一…
无法从 GetProcessId(.. hWnd) (pInvoke) 中提取 processID
我使用以下方法 [DllImport("kernel32.dll", SetLastError=true)] 静态 extern int GetProcessId(IntPtr hWnd); 尝试获取正在运行的进程的 processId…
使用 C# 以编程方式锁定 Windows 工作站
我遇到了这个锁定 Windows 工作站的示例: using System.Runtime.InteropServices; ... [DllImport("user32.dll", SetLastError = true)] static exte…
Linux 下 Mono 中的 ReadConsoleOutput、WriteConsoleOutput、ReadConsoleInput 功能
我在程序的 .Net 版本中通过 P/Invoke 使用三个本机 WinApi 函数: ReadConsoleOutput,WriteConsoleOutput, ReadConsoleInput。 Linux下Mono对应的功…
shell32.dll 的 SHMultiFileProperties 的 P/Invoke
我不太擅长 P/Invoke。 谁能告诉我如何在.NET中声明和使用以下shell32.dll函数? 来自 http://msdn.microsoft.com/en -us/library/bb762230%28VS.85%2…
无法从 C++ 返回结构 回到 C#
我有一个调用本机 C++ dll 的 C# 程序。 C# 具有以下结构: [StructLayout(LayoutKind.Sequential)] public struct Phenomenon { [MarshalAs(Unmanage…
编组包含字符串的结构时出现 PInvoke 错误
我有一个 C++ 结构 struct UnmanagedStruct { char* s; // Other members }; 和一个 C# 结构, struct ManagedStruct { [MarshalAs(UnmanagedType.LPS…