pinvoke相关内容
我用C++创建了一个可在Windows和Mac OSX上编译的跨平台DLL。在Windows上,我有一个使用P/Invoke调用DLL的C#应用程序,而在Mac OSX上,一个Objective C应用程序调用DLL。我有一些简单的函数可以很好地工作,但我需要一个返回整数数组的新函数。 我能找到的最好的例子是Marshal C++ int array to C#,我能够让它工作。但是,我想修
..
在C DLL中,我有一个如下所示的函数: char* GetSomeText(char* szInputText) { char* ptrReturnValue = (char*) malloc(strlen(szInputText) * 1000); // Actually done after parsemarkup with the proper length
..
我正在尝试翻译此qpdf命令: qpdf--qdf--Object-Streams=禁用input.pdf可编辑.pdf 转换为我在使用qpdf DLL时需要的等效方法调用(可从此处获得:https://sourceforge.net/projects/qpdf/)。 我通过Dumpbin运行qpdf DLL以获取函数名,通过查看C++项目包含的头文件,我可以看到函数的参数。
..
我有一个函数foo,它接受非托管类型,然后我创建了一个泛型结构,它要求类型参数是非托管的: [] type Vector4
..
在Windows 8中,为非域用户引入了一种新的身份验证方法:使用控制面板中设置的PIN。 目前,我们的应用程序支持使用LogonUserW()通过预先保存的密码登录Windows,现在还需要支持PIN。 如何从.NET应用程序直接或通过P/Invoke实现这一点? 推荐答案 所以所有东西都由ICredentialProvider接口单元管理-对于Windows8,他们在I
..
我已经构建了一个C++DLL,我想从C#代码中调用它。我可以调用一个函数,但当C#代码尝试加载DLL时,另一个函数会抛出异常。 标题如下: extern "C" __declspec(dllexport) BOOL Install(); extern "C" __declspec(dllexport) BOOL PPPConnect(); 这会生成一个导出表有些混乱的DLL(在名称
..
我一直在努力从我的应用程序中隐藏任务栏中的另一个应用程序。 我一直在使用SetWindowLong函数来设置/删除extended style上的WS_EX_APPWINDOW。 我尝试分别设置和删除该属性,并获取当前的WindowLong,然后将其删除/添加到该属性中,如下所示: SetWindowLong(pMainWindow, GWL_EXSTYLE, GetWindowLo
..
..
我有一个 PKCS #12 (PFX) 文件,它是一个带有 CNG RSA 密钥的证书,我想导出私钥. MIIJ4gIBAzCCCZ4GCSqGSIb3DQEHAaCCCY8EggmLMIIJhzCCBgAGCSqGSIb3DQEHAaCCBfEEggXtMIIF6TCCBeUGCyqGSIb3DQEMCgECOIIE/CCBPowHAYKKoZIhvcNAQwBAzAOBAjBalb3hEiY
..
..
我正在编写一个使用一些非托管代码的跨平台 .NET 库.在我的类的静态构造函数中,检测到平台并从嵌入式资源中提取适当的非托管库并保存到临时目录,类似于 另一个stackoverflow答案. 为了使库不在 PATH 中时可以找到,我在将其保存到临时文件后显式加载它.在 Windows 上,这适用于 kernel32.dll 中的 LoadLibrary.我正在尝试在 Linux 上对 dlo
..
我在 Linux 上使用 Mono/C#,并且有以下 C# 代码: [DllImport("libaiousb")]extern static ResultCode QueryDeviceInfo(uint deviceIndex,ref uint PID、ref uint nameSize、StringBuilder 名称、ref uint DIOBytes,ref uint 计数器); 我
..
有没有办法从 C# P/Invoke 调用用 C 编写并在 Unix 上构建的共享对象文件? 或者我需要使用 Java 或类似的东西吗? 解决方案 Mono 能够从基于 dlopen(3) 构建的 C# 中与本地库集成.您只需使用带有库名称的 DllImport 语句(即“libform.so.5"),然后使用友好的 C# 类来包装本机代码和数据类型,该类负责处理所有低级内容.此页面
..
考虑以下场景:我正在运行我的应用程序,该应用程序在执行期间必须运行另一个进程,并且只有在第二个进程完成内部特定初始化之后,我的第一个进程才能继续.例如: ...//Process1 代码在这里进行各种初始化Process.Start("Process2.exe");//等到 Process2 完成其初始化,然后才继续(Process2 不退出)... 我看到了几个选项: 互斥锁 - 在考
..
在 Windows 8 的 C# 中,如何 pInvoke IMetroMode::IsLauncherVisible 方法? 该方法的详细信息可在此处找到:http://msdn.microsoft.com/en-us/library/windows/desktop/hh404166(v=vs.85).aspx 解决方案 使用IAppVisibility 接口而不是 过时的 IMe
..
我在 Silverlight 5 Out-of-browser 中有一个简单的 FM Radio Tuner 应用程序,它使用 PInvoke 从我的 USB FM 接收器调用来自 Native C++ DLL 的代码.此应用程序在带有 Silverlight5 的 Windows 8 中运行良好. 现在我正在尝试使用 WinRT 将其移植到 Metro 应用程序. 从 Silverl
..
首先,Boolean 类型据说有一个四字节值的默认 marshal 类型.所以下面的代码有效: 结构 A{公共布尔 bValue1;公共 int iValue2;}结构 B{公共 int iValue1;公共布尔 bValue2;}公共静态无效 Main(){int[] rawvalues = new int[] { 2, 4 };A a = (A)Marshal.PtrToStructure
..
C++ dll中定义的函数是: 静态双精度(*Func1)(双精度);EXTERN_C __declspec(dllexport) __stdcall double TestDelegate(double (*fun)(double)){Func1 = 有趣;返回函数1(25.0);}无效我的真实目的(){某类a;a.SetFunction(Func1);//在运行时通过C#定义a的行为a.Do
..
文档 下划线: 注意对于 Windows 8 及更高版本,EnumWindows 仅枚举桌面应用程序的顶级窗口. “桌面应用"和“非桌面应用"有什么区别? 这与地铁应用程序有关吗? 我问是因为 EnumWindows 在 Win10 中的行为与 Win7 相比有些不同. 解决方案 你是对的.EnumWindows 只会查找属于非现代(Metro)应用程序的窗口.它将
..
是否可以从我的 C# 应用程序中获取当前在 Windows 资源管理器中选择的文件列表? 我对通过 C# 等托管语言与 Windows 资源管理器进行交互的不同方法进行了大量研究.最初,我正在查看 shell 扩展的实现(这里和 这里 例如),但显然这是一个坏主意代码,无论如何对于我的情况来说可能是矫枉过正. 接下来,我研究了 PInvoke/COM 解决方案,发现 这篇文章,这导致了
..