SetWindowLong/GetWindowLong 和 32 位/64 位 CPU
我正在使用以下代码: const int GWL_STYLE = (-16); const UInt32 WS_POPUP = 0x80000000; const UInt32 WS_CHILD = 0x40000000; [DllImport("user32…
从托管代码中的非托管 DLL 加载位图文件
我正在尝试从非托管资源 dll 加载图像,但在将从 dll 检索到的 btye 数组转换为位图图像时无法解决错误。 在 Visual Studio 中查看时,test.dll 文件…
与顺序布局和显式布局相比,StructLayout.Auto 意味着什么?
我认为LayoutKind.Sequential和LayoutKind.Explicit很清楚,但是C#如何处理LayoutKind.Auto?…
P/调用。如何从 C# 中通过编组调用非托管方法?
我的 P/Invoke 遇到问题。我正在从 C# 代码调用 .dll(在 C++ 上实现)。有一个类,包含以下方法: virtual AudioFileList *API CreateAudioFileList …
是否可以通过 Web 服务在远程计算机上调用?
我的情况是这样的.. 我有一些代码与 MMO(用 C# 编写的 DLL)接口,我希望通过将其放入 Web 服务中并调用它来隐藏其中的一些代码。我不希望我的 C# DL…
C++/CLI - 调用 DLL 中定义的非托管函数
我有一个 DLL,其中包含带有方法的非托管类。我正在尝试从 C++/CLI 调用这些方法。 我的阅读使我发现 P/Invoke 用于执行此操作。但是,我似乎无法找出…
在“托管到本地的过渡”期间到底发生了什么?
我知道 CLR 在某些情况下需要进行封送处理,但假设我有: using System.Runtime.InteropServices; using System.Security; [SuppressUnmanagedCodeSec…
P/invoke [dllimport 中的括号代表什么
我很好奇为什么当我们进行 P/invoke 时 dllimport 调用位于“[”中 而不仅仅是一个类或函数, 例如: [DllImport("something.dll",....)] 而不是 DllI…
为什么使用struct而不是class时会出现AccessViolationException
当我将 struct 传递给某些 PInvoke 方法时,我将收到错误 未处理的异常:System.AccessViolationException:尝试读取或写入 受保护的内存。这通常表明…
如何 PInvoke 这个 C++功能?
我有以下功能: bool __declspec(dllexport) COMS_HL7QueryAnswer(char *szZone,char* szMessage, char** o_szAnswer) 我从 C# 中 PInvoking 它如下:…
PInvoking函数成功,但未接收到结构体值
我有一个 ANSI DLL,它的函数声明如下: long GetInfo( THE_INFO* pINFO ) 结构 THE_INFO 声明如下: typedef struct tagTHE_INFO { unsigned long dw…
PInvoke 期间的访问冲突
我有这个 dll 调用: [DllImport("FreqCntPcIntf.dll", CallingConvention = CallingConvention.StdCall)] public static extern Intf_ErrorType Freq…
捕获和重放时间关键的击键
我正在尝试捕获击键并在之后尽可能平等地重播它们(时间紧迫)。 到目前为止我尝试过的: 首先使用 SetWindowsHookEx (使用 WH_KEYBOARD_LL) 并记住…