zoukankan      html  css  js  c++  java
  • c#4的动态特性

    1.调用COM组件:

    Type type = Type.GetTypeFromProgID("VisualPHD.Data");   
    dynamic phd = Activator.CreateInstance(type);
    phd.HostName = "192.168.53.186";

    2. 反射调用dotNet类

    Type type = Type.GetType("ConsoleApplication1.Test");

    dynamic t = Activator.CreateInstance(type);

    t.Print("你好!");

    3. 使用PInvoke更简单

    下载开源组件http://code.google.com/p/dynamicdllimport/

    可以使用下面方面调用非托管dll,包括Windows api和自己开发的c格式dll

    dynamic user32 = new DynamicDllImport("user32.dll", callingConvention : CallingConvention.Winapi);
    user32.MessageBox(0, "Hello World", "Platform Invoke Sample", 0);
    dynamic asmproject = new DynamicDllImport("asmproject.dll");
    int value = asmproject.add<int>(3, 4);
    Console.WriteLine(value); 
    dynamic sdl = new DynamicDllImport("SDL.dll", CharSet.Ansi);
    Sdl.SDL_Rect rect = new Sdl.SDL_Rect(
                        0,
                        0,
                        (short)width,
                        (short)height);
    int result = sdl.SDL_FillRect<int>(rgbSurfacePtr, ref rect, 0);
    Sdl.SDL_Event evt;
    while (sdl.SDL_WaitEvent(out evt) != 0)
    {
       if (evt.type == Sdl.SDL_QUIT)
       {
           break;
        }
    }
     

     


     

  • 相关阅读:
    微软面试100 题题解
    二元查找树转变成排序的双向链表(树)
    筆試
    PE注入
    内核网络通信
    哈哈哈
    OpenCV 学习
    第一次研究VM程序中的爆破点笔记
    SE2.3.4各试用限制调试笔记
    破解相关书籍
  • 原文地址:https://www.cnblogs.com/81/p/2397943.html
Copyright © 2011-2022 走看看