当前位置: 首页 > 编程笔记 >

.NET Framework 调用Win32 dll函数

汲永嘉
2023-03-14
本文向大家介绍.NET Framework 调用Win32 dll函数,包括了.NET Framework 调用Win32 dll函数的使用技巧和注意事项,需要的朋友参考一下

示例

using System.Runtime.InteropServices;

class PInvokeExample
{
    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    public static extern uint MessageBox(IntPtr hWnd, String text, String caption, int options);

    public static void test()
    {
        MessageBox(IntPtr.Zero, "Hello!", "Message", 0);
    }
}

声明一个功能static externsttingDllImportAttribute其Value属性设置为.dll文件的名称。不要忘记使用System.Runtime.InteropServices名称空间。然后将其作为常规静态方法调用。

平台调用服务将负责加载.dll并找到所需的功能。在大多数简单情况下,P / Invoke还将封送参数并与.dll返回值(即从.NET数据类型转换为Win32的数据类型,反之亦然)。

 类似资料:
  • Python内置了很多有用的函数,我们可以直接调用。 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数。可以直接从Python的官方网站查看文档: http://docs.python.org/2/library/functions.html 也可以在交互式命令行通过help(abs)查看abs函数的帮助信息。 调用abs函数: >>> abs(100) 100 >

  • Python内置了很多有用的函数,我们可以直接调用。 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数。可以直接从Python的官方网站查看文档: http://docs.python.org/3/library/functions.html 也可以在交互式命令行通过help(abs)查看abs函数的帮助信息。 调用abs函数: >>> abs(100) 100 >

  • 问题内容: 我要实现的目标 我有一些要展示的作品。所以,我有这些的缩略图。当访客单击缩略图时,我希望打开一个div(称为slickbox)并显示标题,说明和有关所单击作品的滑块。 我已经完成的工作以及如何 从数据库中获取工作数据。这是我的作品清单的一小部分: index.php 如您所见,我有一个ul标签,其中每个作品都包含li标签。每个li标签获取数据库中工作的ID,每个li标签包含h3标签和p

  • 函数是C语言编程的核心,通过CGO技术我们不仅仅可以在Go语言中调用C语言函数,也可以将Go语言函数导出为C语言函数。 2.4.1 Go调用C函数 对于一个启用CGO特性的程序,CGO会构造一个虚拟的C包。通过这个虚拟的C包可以调用C语言函数。 /* static int add(int a, int b) { return a+b; } */ import "C" func main(

  • 本文向大家介绍调用Lua函数,包括了调用Lua函数的使用技巧和注意事项,需要的朋友参考一下 示例 在上面的示例中,我们正在执行以下操作: 如第一个示例所示,创建和设置Lua VM 从全局Lua表获取并将Lua函数推入虚拟堆栈 将字符串"Hello C API"作为输入参数推入虚拟堆栈 指示VM使用已在堆栈中的一个参数调用函数 关闭并清理 注意: 简而言之,这会lua_call()从堆栈中弹出函数及

  • 1. 函数调用 我们用下面的代码来研究函数调用的过程。 例 19.1. 研究函数的调用过程 int bar(int c, int d) { int e = c + d; return e; } int foo(int a, int b) { return bar(a, b); } int main(void) { foo(2, 3); return 0; } 如果在编译时加上-g选项

  • 我使用Web API调用Dynamics365来获得函数的结果。我也尝试过使用这个函数作为绑定函数。但都没有返回预期的结果。以下是相关文档:https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/queryschedule?view=dynamics-ce-odata-9 我尝试过不同的资源id、在调用中指定

  • 内部函数调用(Internal Function Calls) 在当前的合约中,函数可以直接调用(内部调用方式),包括也可递归调用,来看一个简单的示例: contract C { function g(uint a) returns (uint ret) { return f(); } function f() returns (uint ret) { return g(7) +